微信小程序開發(fā)之自定義tabBar的實現(xiàn)
最近開發(fā)微信小程序,公司要求做一個類似閑魚的tabbar,但是網(wǎng)上大多資料的tabbar都會在頁面切換的時候重新渲染,所以我寫了一個不會重新渲染的tabbar,有需要的直接拿走不謝。https://github.com/SuRuiGit/wxapp-customTabbar
在小程序的開發(fā)文檔中,對tabbar是這樣說明的:
如果小程序是一個多 tab 應(yīng)用(客戶端窗口的底部或頂部有 tab 欄可以切換頁面),可以通過 tabBar 配置項指定 tab 欄的表現(xiàn),以及 tab 切換時顯示的對應(yīng)頁面。
Tip:
1.當(dāng)設(shè)置 position 為 top 時,將不會顯示 icon
2.tabBar 中的 list 是一個數(shù)組,只能配置最少2個、最多5個 tab,tab 按數(shù)組的順序排序。
在實際開發(fā)過程中,小程序自帶的tabbar樣式并不能滿足設(shè)計提供的開發(fā)需求,所以需要我們自定義一套屬于自己的tabbar。
使用步驟如下:
第一步:找到項目中的tabbarComponent目錄,拷貝到你的工程中,然后將tabbarComponent->icon圖標(biāo)替換成你自己的tabbar圖片
第二步:到app.json中配置tabBar,這里我就不細(xì)說了,只強(qiáng)調(diào)閑魚的tabbar中間的按鈕是跳到二級頁面,所以不配置在tabBar的list中
第三步:在app.js的onLaunch方法中調(diào)用wx.hideTabBar();隱藏系統(tǒng)自帶的tabBar
第四步:在app.js中的globalData中加入自定義tabbar的參數(shù),再加入一個方法給tabBar.list配置中的頁面使用,代碼如下
globalData: { userInfo: null, tabBar: { "backgroundColor": "#ffffff", "color": "#979795", "selectedColor": "#1c1c1b", "list": [ { "pagePath": "/page/index/index", "iconPath": "icon/icon_home.png", "selectedIconPath": "icon/icon_home_HL.png", "text": "首頁" }, { "pagePath": "/page/myRelease/index", "iconPath": "icon/icon_release.png", "isSpecial": true, "text": "發(fā)布" }, { "pagePath": "/page/mine/index", "iconPath": "icon/icon_mine.png", "selectedIconPath": "icon/icon_mine_HL.png", "text": "我的" } ] } }
editTabbar: function() { let tabbar = this.globalData.tabBar; let currentPages = getCurrentPages(); let _this = currentPages[currentPages.length - 1]; let pagePath = _this.route; (pagePath.indexOf('/') != 0) && (pagePath = '/' + pagePath); for (let i in tabbar.list) { tabbar.list[i].selected = false; (tabbar.list[i].pagePath == pagePath) && (tabbar.list[i].selected = true); } _this.setData({ tabbar: tabbar }); },
第五步:在tabBar的list中配置的頁面的.js文件的data中加入tabbar:{},并在onload方法中調(diào)用app.editTabbar();
第六步:在tabBar的list中配置的頁面的.json文件中加入
"usingComponents": { "tabbar": "../../tabbarComponent/tabbar" }
在.wxml文件中加入<tabbar tabbar="{{tabbar}}"></tabbar>
到目前為止,自定義tabbar就完成啦,撒花?。。。?!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript 產(chǎn)生隨機(jī)數(shù)的幾種方法總結(jié)
這篇文章主要介紹了javascript 產(chǎn)生隨機(jī)數(shù)的幾種方法總結(jié)的相關(guān)資料,希望通過本文大家能夠掌握如何實現(xiàn)這樣的方法,需要的朋友可以參考下2017-09-09JavaScript緩沖運動實現(xiàn)方法(2則示例)
這篇文章主要介紹了JavaScript緩沖運動實現(xiàn)方法,簡單分析了JavaScript緩沖運動的實現(xiàn)原理與相關(guān)運算技巧,并給出了兩則實例代碼予以總結(jié)分析,需要的朋友可以參考下2016-01-01jQuery ajax(復(fù)習(xí))—Baidu ajax request分離版
你沒有看錯標(biāo)題,本文的確是在講Baidu ajax,不過是很久很久以前的版本了,我們先分析一段簡單的ajax代碼,來自早期的百度七巧板項目通過這個來先復(fù)習(xí)一遍ajax的知識2013-01-01