亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

小程序自定義單頁面、全局導航欄的實現代碼

2020-03-21 16:00:38
字體:
來源:轉載
供稿:網友

需求

產品說小程序返回到首頁不太方便,想添加返回首頁按鈕,UI說導航欄能不能設置背景圖片,因為那樣設計挺好看的。

小程序,單頁面,導航欄,代碼

需求分析并制定方案

這產品和UI都提需求了,咱也不能反駁哈,所以開始調研,分析可行性方案;1、可以添加懸浮按鈕。2、自定義導航欄。
添加懸浮按鈕,是看起來是比較簡單哈,但是感覺不太優雅,會占據頁面的空間,體驗也不太好。所以想了下第二種方案,自定義導航欄既可以實現產品的需求還可以滿足UI的設計美感,在頂部空白處加上返回首頁的按鈕,這樣和返回按鈕還對稱(最終如圖所示,頂部導航欄是個背景圖片,分兩塊組合起來)。

實現方案

一、實現的前提

1、首先查看文檔,看文檔里關于自定義導航欄是怎么規定的,有哪些限制;還有小程序自定義導航欄全局配置和單頁面配置的微信版本和調試庫的最低支持版本。

2、在app.json window 增加 navigationStyle:custom ,頂部導航欄就會消失,只保留右上角膠囊狀的按鈕,如何修改膠囊的顏色呢;膠囊體目前只支持黑色和白色兩種顏色 在app.josn window 加上 "navigationBarTextStyle":"white/black"

3、還要考慮加返回按鈕和返回首頁的按鈕,適配不同的機型

先說下兩種配置方法:

①全局配置navigationStyle:

調試基礎庫>=1.9.0

微信客戶端>=6.6.0

app.json

{ "usingComponents": {  "navigationBar": "/components/navigationBar/navigationBar" }, "window": {  "navigationStyle": "custom" } }

②單頁面配置navigationStyle

調試基礎庫>=2.4.3

微信客戶端版本>=7.0.0

自定義的頁面.json

{ "window": {  "navigationStyle": "default" } }{ "navigationStyle": "custom", "usingComponents": {  "navigationBar": "/components/navigationBar/navigationBar" }}
兩者的區別就是,全局配置放在app.json文件里,單頁面配置放在自定義頁面配置文件里。

二、實現的步驟

以下說下幾個要點:

1、自定義導航欄文本,是否顯示返回,是否顯示返回首頁,導航欄高度

2、statusBarHeight,用來獲取手機狀態欄的高度,這個需要在全局app.js中的onLaunch,調用wx.getSystemInfo獲取,navigationBarHeight+默認的高度,這個是設定整個導航欄的高度,

3、還有注意的,在寫樣式距離和大小時建議都用px,因小程序右邊的膠囊也是用的px,不是rpx。

4、因為自定義導航欄每個頁面都要寫,所以把導航欄封裝了公共組件,這樣只需要在每個頁面引入即可。

如下是封裝的導航欄組件:

wxml

<view class="navbar" style="{{'height: ' + navigationBarHeight}}"> <view style="{{'height: ' + statusBarHeight}}"></view> <view class='title-container'>  <view class='capsule' wx:if="{{ back || home }}">   <view bindtap='back' wx:if="{{back}}">    <image src='/images/back.png'></image>        </view>   <view bindtap='backHome' wx:if="{{home}}">    <image src='/images/home.png'></image>   </view>  </view>  <view class='title'>{{text}}</view> </view></view><view style="{{'height: ' + navigationBarHeight}};background: white;"></view>
這里有個需注意的問題,就是一般會出現自定義導航欄,下拉頁面,導航欄也隨著會下拉,這種問題是因為設置fixed后頁面元素整體上移了navigationBarHeight,所以在此組件里設置一個空白view元素占用最上面的navigationBarHeight這塊高度

wxss

.navbar { width: 100%; background-color: #1797eb; position: fixed; top: 0; left: 0; z-index: 999;}.title-container { height: 40px; display: flex; align-items: center; position: relative;}.capsule { margin-left: 10px; height: 30px; background: rgba(255, 255, 255, 0.6); border: 1px solid #fff; border-radius: 16px; display: flex; align-items: center;}.capsule > view { width: 45px; height: 60%; position: relative;.capsule > view:nth-child(2) { border-left: 1px solid #fff; }.capsule image { width: 50%; height: 100%; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);}.title { color: white; position: absolute; top: 6px; left: 104px; right: 104px; height: 30px; line-height: 30px; font-size: 14px; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}

js

const app = getApp()Component({ properties: {  text: {   type: String,   value: 'Wechat'  },  back: {   type: Boolean,   value: false  },  home: {   type: Boolean,   value: false  } }, data: {  statusBarHeight: app.globalData.statusBarHeight + 'px',  navigationBarHeight: (app.globalData.statusBarHeight + 44) + 'px' }, methods: {  backHome: function () {   let pages = getCurrentPages()   wx.navigateBack({    delta: pages.length   })  },  back: function () {   wx.navigateBack({    delta: 1   })  } }})

json

{ "component": true, "usingComponents": {}}
最終還需要考慮下版本兼容的問題,畢竟還有一些用戶,微信版本并沒有更新到最新版本。

首先可以在app.js里面獲取下當前用戶的微信版本,做下版本比較,如果小于這個版本,設置個全局變量,也可以在組件寫個方法,在不同的頁面打開顯示不同的頂部導航欄,或者可以控制是否顯示導航欄,這里就不詳細說了。

親自試了下,在低于7.0版本的微信中,如果采用單頁面自定義導航欄,會出現兩個導航欄,這時候通過判斷版本號不要再渲染自定義的導航欄組件了,在頁面的配置文件里寫上title名,還有相應的背景色,這樣就會顯示自帶的導航欄了。

總結

小程序開發是有些坑的地方,從不支持自定義導航欄,到支持全局自定義導航欄,再到現在的支持單頁面配置,可以看出在慢慢完善。還有底部tabbar,可自己選擇配置的太少了,雖然也支持自定義,但是發現自定義寫的底部導航組件體驗并不好,每次打開頁面都會重新渲染底部的按鈕,如果全部寫成在一個頁面里的tab切換,雖然按鈕每次不用重新加載了,但是業務多肯定不行,寫到一個單頁面里東西也太多了。 希望微信能夠多添加或放開一些功能,讓開發者更好的服務于產品,給用戶更好的體驗。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩黄色高清视频| 97久久久免费福利网址| 日韩在线视频免费观看高清中文| 色偷偷亚洲男人天堂| 久久精品国产欧美亚洲人人爽| 精品福利在线视频| 中文字幕不卡在线视频极品| 欧美黑人国产人伦爽爽爽| 亚洲国产成人久久| 91香蕉亚洲精品| 亚洲色图av在线| 亚洲一区二区三区在线免费观看| www.久久久久久.com| 精品视频在线播放免| 亚洲黄一区二区| www欧美xxxx| 亚洲成人1234| 国产成人一区二区| 精品精品国产国产自在线| 欧美日韩国产二区| 日韩av在线网站| 成人黄色午夜影院| 日韩美女视频免费在线观看| 91久久嫩草影院一区二区| 亚洲片在线观看| 亚洲xxx大片| 久久久久久久影视| 亚洲另类激情图| 欧美性生交大片免网| 日韩精品亚洲视频| 亚洲激情在线观看视频免费| 国产精品日韩欧美| 久久精品国产一区| www.午夜精品| 91在线观看欧美日韩| 色妞欧美日韩在线| 日韩中文字幕免费视频| 欧美国产精品人人做人人爱| 亚洲人精选亚洲人成在线| 亚洲高清色综合| 亚洲精品久久久久久久久| 欧美性高潮床叫视频| 国产色婷婷国产综合在线理论片a| 亚洲人成77777在线观看网| 成人自拍性视频| 一区二区成人精品| 久久精品国产2020观看福利| 久久免费精品日本久久中文字幕| 亚洲在线观看视频网站| 日韩精品电影网| 原创国产精品91| 色香阁99久久精品久久久| 国产精品69av| 国产精品视频免费观看www| 高清欧美电影在线| 色综久久综合桃花网| 欧美超级免费视 在线| 久久久久久999| 日韩成人久久久| 97国产成人精品视频| 久久久久日韩精品久久久男男| 国产一区视频在线| 欧美黑人xxx| 国产成人精品视频在线观看| 久久国产精品亚洲| 欧美乱大交xxxxx另类电影| 欧美日韩在线视频一区| 91中文精品字幕在线视频| 日韩电影中文字幕| 午夜精品福利视频| 国产盗摄xxxx视频xxx69| 一本色道久久88综合日韩精品| 亚洲第一区第二区| 欧美日韩中文字幕综合视频| 日韩大片免费观看视频播放| 国产精品爽爽ⅴa在线观看| 亚洲国产97在线精品一区| 国产视频一区在线| 中文字幕av一区二区| 欧美亚洲国产日韩2020| 久久久久国产精品www| 国产亚洲视频在线观看| 亚洲直播在线一区| 538国产精品一区二区免费视频| 国产精品成人一区| 91夜夜揉人人捏人人添红杏| 国产ts人妖一区二区三区| 另类专区欧美制服同性| 一区二区欧美久久| 午夜精品久久久久久久男人的天堂| 日韩风俗一区 二区| 国模精品一区二区三区色天香| 国产精品白丝jk喷水视频一区| 欧美另类高清videos| 色综合色综合网色综合| 91免费人成网站在线观看18| 高清亚洲成在人网站天堂| 国产ts人妖一区二区三区| 在线播放国产一区中文字幕剧情欧美| 欧美激情喷水视频| 91久久精品国产91久久性色| 日韩av综合中文字幕| 日韩电影第一页| 日韩欧美aⅴ综合网站发布| 国产精品海角社区在线观看| 欧美日韩成人在线视频| 亚洲国产天堂久久国产91| 欧美黑人巨大精品一区二区| 欧美重口另类videos人妖| 亚洲区在线播放| 中文字幕九色91在线| 久久久人成影片一区二区三区观看| 国语自产偷拍精品视频偷| 欧美日韩人人澡狠狠躁视频| 欧美性xxxxxx| www.99久久热国产日韩欧美.com| 影音先锋日韩有码| 日韩黄色高清视频| 姬川优奈aav一区二区| 国产欧美婷婷中文| 久久中文字幕在线| 欧美视频在线观看免费网址| 国产精品久久久久久久久久小说| 全亚洲最色的网站在线观看| 久久亚洲精品毛片| 中文字幕欧美日韩在线| 91在线免费看网站| 日韩精品免费在线视频观看| 精品久久久在线观看| 亚洲精品91美女久久久久久久| 精品人伦一区二区三区蜜桃网站| 久久久久北条麻妃免费看| 亚洲日韩中文字幕| 亚洲一区二区日本| 97碰碰碰免费色视频| 国产精品露脸自拍| 在线精品国产欧美| 久久999免费视频| 美日韩丰满少妇在线观看| 成人午夜在线影院| 国产欧美一区二区三区在线| 亚洲国产成人久久| 91在线网站视频| 国产成人精品在线| 国产一区玩具在线观看| 国内精品国产三级国产在线专| 在线中文字幕日韩| 91理论片午午论夜理片久久| 色在人av网站天堂精品| 中国人与牲禽动交精品| 久久久噜噜噜久噜久久| 久久久人成影片一区二区三区| 亚洲精品国产成人| 欧美一级视频免费在线观看| 欧美性开放视频| 国产精品三级在线| 色婷婷av一区二区三区久久| 欧美激情亚洲另类| 欧美日韩国产限制| 亚洲男人的天堂在线| 91中文字幕在线观看| 中文字幕欧美日韩精品| 精品视频久久久| 久久久免费观看|