小程序自定义导航如何实现的,代码是什么
Admin 2022-09-13 群英技术资讯 464 次浏览
微信小程序自定义导航的具体代码如下
在app.js中获取状态栏信息和胶囊按钮信息
onLaunch() { // 展示本地存储能力 const logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) // 获取系统信息 this.globalData.systemInfo = wx.getSystemInfoSync(); // 获取状态栏高度 this.globalData.statusBarHeight = this.globalData.systemInfo.statusBarHeight // 胶囊按钮位置信息 this.globalData.menuButtonInfo = wx.getMenuButtonBoundingClientRect(); // 获取导航栏高度 this.globalData.navBarHeight = this.globalData.menuButtonInfo.bottom + (this.globalData.menuButtonInfo.top - this.globalData.statusBarHeight) },
globalData: { statusBarHeight: '', menuButtonInfo: {}, navBarHeight:'', systemInfo:'' },
导航栏高度为胶囊底部位置+(胶囊顶部位置-状态栏高度)
将导航栏封装成组件
navigation-bar.js
properties: { // 是否显示返回箭头 showBackArrow: { type: Boolean, value: true }, // 是否自定义导航栏标题 customTitle: { type: Boolean, value: false }, // 导航栏标题 title: { type: String, value: 'weixin' }, // 是否自定义返回方法 customBack: { type: Boolean, value: false } }, data: { navBarHeight:getApp().globalData.navBarHeight, statusBarHeight:getApp().globalData.statusBarHeight, menuButtonInfo:getApp().globalData.menuButtonInfo }, methods: { /** 点击返回按钮 */ back() { if (this.data.customBack) { this.triggerEvent('back') } else { wx.navigateBack({ delta: 0, }) } }, /** 点击导航栏标题事件 */ clickTitle(){ this.triggerEvent('clickTitle') }, }
navigation-bar.wxml
<view class="nav-bar" style="height:{{navBarHeight}}px;"> <view style="height:{{statusBarHeight}}px;"></view> <view style="height:{{navBarHeight-statusBarHeight}}px;width:{{menuButtonInfo.left}}px;" class="nav-box"> <view class="back-arrow" wx:if="{{showBackArrow}}"> <van-icon name="arrow-left" color="#262626" size="40rpx" bindtap="back"></van-icon> </view> <view class="nav-title" style="width: {{showBackArrow?'calc(100% - 40rpx)':'100%'}};"> <text wx:if="{{!customTitle}}" bindtap="clickTitle">{{title}}</text> <slot wx:if="{{customTitle}}"></slot> </view> </view> </view> <view style="height:{{navBarHeight}}px;"></view>
navigation-bar.wxss
.nav-bar{ width: 100%; position: fixed; top: 0; left: 0; background-color: #ffffff; z-index: 1000000; } .nav-box{ padding: 0 20rpx; display: flex; align-items: center; } .back-arrow{ width: 60rpx; height: 100%; display: flex; align-items: center; padding-top: 4rpx; } .nav-title{ height: 100%; display: flex; align-items: center; font-size: 36rpx; color: #262626; font-weight: 600; }
使用
app.js
"window": { "navigationStyle": "custom" }, "usingComponents": { "navigation-bar":"/components/navigation-bar/navigation-bar", }
.wxml
<navigation-bar title="打卡" customBack bind:back="backWorkPage"></navigation-bar>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
隐藏边框线的方法:1、使用“document.getElementById("id")”语法根据id值获取指定元素节点;2、使用“元素节点.style.borderColor="transparent";”语句来隐藏指定元素节点的边框线。
这篇文章主要为大家详细介绍了使用js编写实现拼图游戏,一种是拖拽拼图,一种是经典的九宫格拼图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
滑块组件就是一个允许用户在有限区间内通过移动滑块来选择值的组件。滑块组件的应用是比较常见的,例如商品价格区间筛选,音量设置,滑块验证等等。这篇文章就给大家介绍一下用原生JS实现滑块组件,下面是实现效果,功能分析以及代码。
这篇文章主要为大家介绍了前端取消请求及取消重复请求方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录前言hover 的实现click 的实现矩形的坐标哪来的点在多边形内的其他判断方法穿透本章小结前言上个章节中我们已经给物体加上了被选中的效果,现在可以上点交互了,这个章节主要实现的就是物体的 hover 和 click 事件,当鼠标 hover 到物体上时,我们会改变鼠标的样式使其变成移动的样子;当 hover 到
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008