微信小程序自定義導(dǎo)航的方法
本文實(shí)例為大家分享了微信小程序自定義導(dǎo)航的具體代碼,供大家參考,具體內(nèi)容如下
在app.js中獲取狀態(tài)欄信息和膠囊按鈕信息
onLaunch() { ? ? // 展示本地存儲(chǔ)能力 ? ? const logs = wx.getStorageSync('logs') || [] ? ? logs.unshift(Date.now()) ? ? wx.setStorageSync('logs', logs) ? ? // 獲取系統(tǒng)信息 ?? ?this.globalData.systemInfo = wx.getSystemInfoSync(); ?? ?// 獲取狀態(tài)欄高度 ?? ?this.globalData.statusBarHeight = this.globalData.systemInfo.statusBarHeight ?? ?// 膠囊按鈕位置信息 ?? ?this.globalData.menuButtonInfo = wx.getMenuButtonBoundingClientRect(); ?? ?// 獲取導(dǎo)航欄高度 ?? ?this.globalData.navBarHeight = this.globalData.menuButtonInfo.bottom + (this.globalData.menuButtonInfo.top - this.globalData.statusBarHeight) },
globalData: { ? ? statusBarHeight: '', ? ? menuButtonInfo: {}, ? ? navBarHeight:'', ? ? systemInfo:'' ? },
導(dǎo)航欄高度為膠囊底部位置+(膠囊頂部位置-狀態(tài)欄高度)
將導(dǎo)航欄封裝成組件
navigation-bar.js
properties: { ?? ?// 是否顯示返回箭頭 ? ? showBackArrow: { ? ? ? ? type: Boolean, ? ? ? ? value: true ? ? }, ? ? // 是否自定義導(dǎo)航欄標(biāo)題 ? ? customTitle: { ? ? ? ? type: Boolean, ? ? ? ? value: false ? ? }, ? ? // 導(dǎo)航欄標(biāo)題 ? ? title: { ? ? ? ? type: String, ? ? ? ? value: 'weixin' ? ? }, ? ? // 是否自定義返回方法 ? ? customBack: { ? ? ? ? type: Boolean, ? ? ? ? value: false ? ? } }, data: { ?? ?navBarHeight:getApp().globalData.navBarHeight, ? ? statusBarHeight:getApp().globalData.statusBarHeight, ? ? menuButtonInfo:getApp().globalData.menuButtonInfo }, methods: { ? ? /** ?點(diǎn)擊返回按鈕 */ ? ? back() { ? ? ? ? if (this.data.customBack) { ? ? ? ? ? ? this.triggerEvent('back') ? ? ? ? } else { ? ? ? ? ? ? wx.navigateBack({ ? ? ? ? ? ? ? ? delta: 0, ? ? ? ? ? ? }) ? ? ? ? } ? ? }, ? ? /** 點(diǎn)擊導(dǎo)航欄標(biāo)題事件 */ ? ? 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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序自定義頭部導(dǎo)航欄和導(dǎo)航欄背景圖片 navigationStyle問題
- 詳解微信小程序膠囊按鈕返回|首頁自定義導(dǎo)航欄功能
- 微信小程序自定義導(dǎo)航隱藏和顯示功能
- 微信小程序自定義navigationBar頂部導(dǎo)航欄適配所有機(jī)型(附完整案例)
- 微信小程序自定義頭部導(dǎo)航欄(組件化)
- uniapp微信小程序底部動(dòng)態(tài)tabBar的解決方案(自定義tabBar導(dǎo)航)
- 微信小程序自定義底部導(dǎo)航帶跳轉(zhuǎn)功能
- 微信小程序自定義導(dǎo)航欄實(shí)例代碼
- 微信小程序?qū)崿F(xiàn)自定義導(dǎo)航欄
- 微信小程序系列之自定義頂部導(dǎo)航功能
相關(guān)文章
Javascript四舍五入Math.round()與Math.pow()使用介紹
本文為大家介紹下Javascript中的四舍五入Math.round()與Math.pow()的使用,感興趣的朋友不要錯(cuò)過2013-12-12JS獲取當(dāng)前時(shí)間的年月日時(shí)分秒及時(shí)間的格式化的方法
這篇文章主要介紹了js獲取當(dāng)前時(shí)間的年月日時(shí)分秒及時(shí)間的格式化,本文通過實(shí)例代碼講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12echarts使用中關(guān)于y坐標(biāo)軸無法正常顯示的問題解決記錄
Echarts是由百度提供的數(shù)據(jù)可視化解決方案,下面這篇文章主要給大家介紹了關(guān)于echarts使用中關(guān)于y坐標(biāo)軸無法正常顯示的問題解決記錄,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12通過BootStrap-select插件 js jQuery控制select屬性變化
bootstrap-select我想大家都不陌生是一個(gè)前端下拉框的插件非常好用,在select的標(biāo)簽中設(shè)置屬性可以做很多功能控制,下面通過本文給大家詳細(xì)介紹下2017-01-01uniapp中使用render.js進(jìn)行openlayers、arcgis等地圖操作實(shí)戰(zhàn)指南
renderjs是一個(gè)運(yùn)行在視圖層的js,它比WXS更加強(qiáng)大,它只支持app-vue和h5,下面這篇文章主要給大家介紹了關(guān)于uniapp中使用render.js進(jìn)行openlayers、arcgis等地圖操作的相關(guān)資料,需要的朋友可以參考下2024-01-01