成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

微信小程序中怎么自定義導(dǎo)航欄

本篇文章給大家分享的是有關(guān)微信小程序中怎么自定義導(dǎo)航欄,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),景東企業(yè)網(wǎng)站建設(shè),景東品牌網(wǎng)站建設(shè),網(wǎng)站定制,景東網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,景東網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

step1 自定義

第一步 取得導(dǎo)航欄的控制權(quán)

小程序支持自定義導(dǎo)航欄,只需要在app.json文件中,window項中配置

"navigationStyle": "custom"

這樣微信就放開了導(dǎo)航欄的控制權(quán),只保留右上角的膠囊。

頁面會從視窗的頂部開始渲染,如圖

微信小程序中怎么自定義導(dǎo)航欄

接下來,我們要做的就是實現(xiàn)一個導(dǎo)航欄組件,把它放置在頁面原來的默認(rèn)導(dǎo)航欄的位置,內(nèi)容什么的完全由開發(fā)者自己定制。

step2 功能點

第二步 梳理導(dǎo)航欄的功能點

  • 導(dǎo)航欄高度(各個機型動態(tài)適配)

  • 導(dǎo)航欄內(nèi)容定制

    • 所有機型title居中顯示(自己布局實現(xiàn))

    • 首頁導(dǎo)航欄左上角顯示個人中心、中部title使用個性圖標(biāo)

    • 嵌套頁面左上角顯示返回上一頁 + 回到首頁按鈕

    • 非常規(guī)首頁左上角顯示回到首頁按鈕

導(dǎo)航欄高度 包含兩個部分:工具欄和title欄, 工具欄的高度一般是固定的20px,title欄的高度需要計算

導(dǎo)航欄內(nèi)容的定制,需要識別當(dāng)前頁面的性質(zhì),根據(jù)不同的頁面展示不同的內(nèi)容,可以通過獲取當(dāng)前的頁面路由棧來判定當(dāng)前的頁面性質(zhì)

微信小程序中怎么自定義導(dǎo)航欄

step3 導(dǎo)航欄組件基本結(jié)構(gòu)

目前快狗打車小程序的基本結(jié)構(gòu)

// navBar.wxml
<cover-view class='place-holder'></cover-view>
<cover-view class='nav-bar'>
 <cover-view class='tool-bar' style='height: 20px'></cover-view>
 <cover-view class='title-bar'>
  <cover-view class='left-cell'>
   // scene0 常規(guī)首頁 個人中心按鈕
   // scene1 非常規(guī)首頁 回首頁按鈕
   // scene2 嵌套頁  返回上一頁按鈕 + 回首頁按鈕
  </cover-view>
  <cover-view class='center-cell'>
   // scene0 常規(guī)首頁 個性化title
   // scene1 其他頁 正常title
  </cover-view>
  <cover-view class='right-cell'>
   // 占位用的
  </cover-view>
 </cover-view>
</cover-view>

Tips:

組件內(nèi)多了一個占位的place-holder塊,是因為某些頁面有類似滾動列表的需求,要保證導(dǎo)航欄始終在視窗的頂部的話,需要使用定位,定位之后脫離文檔流,在最初的時候需要占位塊保證后續(xù)的頁面內(nèi)容不會被導(dǎo)航欄遮擋

使用cover-view布局是因為快狗的業(yè)務(wù)中有類似map的原生組件,使用view的話有被遮擋的風(fēng)險

step4 高度計算

需要計算title-bar的高度

在 默認(rèn)導(dǎo)航欄 & 無底部tab欄 的情況下,使用wx.getSystemInfoSync獲取手機信息,可以看到兩項信息:

  • screenHeight 屏幕高度,單位px

  • windowHeight 可使用窗口高度,單位px

這種情況下,二者的差值就是默認(rèn)的導(dǎo)航欄的高度, 但是在設(shè)置了"navigationStyle": "custom"之后,二者的值是一樣的了,因此導(dǎo)航欄的高度我們需要使用統(tǒng)計的經(jīng)驗值。

根據(jù)統(tǒng)計,得到如下的結(jié)果:

{
 'iPhone': 64,
 'iPhoneX': 88,
 'Android': 68,
 'samsung': 72
}

工具欄的高度可根據(jù)wx.getSystemInfoSync返回值中的statusBarHeight獲取。

至此,我們得到了導(dǎo)航欄的相關(guān)的高度值

// 導(dǎo)航欄總高度 & 占位塊高度
placeHoder = totalBar = {
 'iPhone': 64,
 'iPhoneX': 88,
 'Android': 68,
 'samsung': 72
}
// 時間、信號等工具欄的高度
toolBar = systermInfo.statusBarHeight
// 頁面title欄的高度
titleBar = totalBar - toolBar

step5 內(nèi)容定制

在組件的生命周期函數(shù)attached中,我們可以獲取當(dāng)前的頁面路由棧

let pages = getCurrentPages()
let current_page = pages[pages.length - 1].route 
const NORMAL_ENTRY = '常規(guī)的入口頁路徑'

// scene 0 常規(guī)入口頁 個性化title、個人中心
pages.length === 1 && current_page === NORMAL_ENTRY
// scene 1 非常規(guī)入口頁 回首頁
pages.length === 1 && current_page !== NORMAL_ENTRY
// scene 2 嵌套頁面 返回 + 回首頁
pages.length > 1

以上就是微信小程序中怎么自定義導(dǎo)航欄,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:微信小程序中怎么自定義導(dǎo)航欄
轉(zhuǎn)載來源:http://jinyejixie.com/article36/ppposg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣、微信小程序品牌網(wǎng)站制作、云服務(wù)器、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
建湖县| 新密市| 大宁县| 扶风县| 灵寿县| 湟中县| 乐至县| 福鼎市| 海林市| 三都| 马关县| 罗源县| 汽车| 平原县| 密云县| 林州市| 山东| 璧山县| 南和县| 卢氏县| 女性| 顺义区| 桦甸市| 丰县| 澄江县| 镇原县| 古交市| 齐齐哈尔市| 楚雄市| 疏勒县| 嘉义县| 宁夏| 天气| 乌海市| 房山区| 长武县| 弥渡县| 松滋市| 盐城市| 玛曲县| 焦作市|