微信小程式自定義tabBar
小程式官方提供的方法點選切換會有閃爍,用下面方法不會有這問題,照著貼上
- app.js
//tabBar全域性點選事件
editTabbar: function () {
var tabbar = this.globalData.tabBar;
var currentPages = getCurrentPages();
var that = currentPages[currentPages.length - 1];
var pagePath = that.route;
(pagePath.indexOf('/') != 0) && (pagePath = '/' + pagePath);
for (var i in tabbar.list) {
tabbar.list[i].selected = false;
(tabbar.list[i].pagePath == pagePath) && (tabbar.list[i].selected = true);
}
that.setData({
tabbar: tabbar
});
},
globalData: {
userInfo: null,
tabBar: {
"backgroundColor": "#ffffff",
"color": "#999999",
"selectedColor": "#ed6c9e",
"list": [
{
"pagePath": "/pages/classify/classify",
"iconPath": "image/classify.png",
"selectedIconPath": "image/classify_select.png",
"text": "分類"
},
{
"pagePath": "/pages/scan/scan",
"iconPath": "image/scan.jpg",
"selectedIconPath": "image/scan_select.jpg",
"isSpecial": true,
"text": ""
},
{
"pagePath": "/pages/my/my",
"iconPath": "image/my.png",
"selectedIconPath": "image/my_select.png",
"text": "我的"
}
]
}
}
- app.json
"pages":[
"pages/classify/classify",
"pages/scan/scan",
"pages/my/my",
],
"tabBar": {
"custom": true,
"list": [
{
"pagePath": "pages/classify/classify"
},
{
"pagePath": "pages/scan/scan"
},
{
"pagePath": "pages/my/my"
}
]
},
3.根目錄下新建資料夾tabbar(與pages同級),裡面包括以下檔案,image裡放底部圖片
4. tabbar.js
const app = getApp();
Component({
properties: {
tabbar: {
type: Object,
}
},
methods: {
goPage: function (event) {
var url = event.currentTarget.dataset.id;
wx.switchTab({
url: url,
})
}
},
})
5.tabbar.json
{
"component": true,
"usingComponents": {}
}
6.tabbar.wxml
<view class="tabbar_box" style="background-color:{{tabbar.backgroundColor}}">
<block wx:for="{{tabbar.list}}" wx:key="item.pagePath">
<view wx:if="{{item.isSpecial == true}}" class="tabbar_nav" hover-class="none" bindtap="goPage" data-id="{{item.pagePath}}" style="color:{{tabbar.selectedColor}}">
<image class="tabbar_icon_special" src="{{item.selected ? item.selectedIconPath : item.iconPath}}" style="box-shadow:{{item.selected ? '0 0 10rpx #ed6c9e':'none'}}"></image>
</view>
<view wx:else class="tabbar_nav" hover-class="none" bindtap="goPage" style="color:{{item.selected ? tabbar.selectedColor : tabbar.color}}" data-id="{{item.pagePath}}">
<image class="tabbar_icon" src="{{item.selected ? item.selectedIconPath : item.iconPath}}"></image>
<text>{{item.text}}</text>
</view>
</block>
</view>
7.tabbar.wxss
.tabbar_box{
display: flex;
flex-direction: row;
justify-content: space-around;
position: fixed;
bottom: 0;
left: 0;
z-index: 999;
width: 100%;
height: 80rpx;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
}
.tabbar_nav{
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 20rpx;
height: 100%;
position: relative;
}
.tabbar_icon{
width: 38rpx;
height: 34rpx;
}
.tabbar_icon_special{
position: absolute;
top: -24rpx;
width: 72rpx;
height: 70rpx;
}
8.classify.js 和另外兩個頁面js
const app = getApp()
Page({
data: {
tabbar: {}
},
onLoad: function (options) {
app.editTabbar();
}
})
9.classify.json 和另外兩個頁面json
{
"usingComponents": {
"tabbar": "../../tabbar/tabbar"
},
"navigationBarTitleText": "分類"
}
10.classify.wxml 和另外兩個頁面wxml
<tabbar tabbar="{{tabbar}}"></tabbar>
相關文章
- 微信小程式 自定義tabbar微信小程式tabBar
- 微信小程式實用小元件:自定義tabbar微信小程式元件tabBar
- 微信小程式底部實現自定義動態Tabbar微信小程式tabBar
- 微信小程式自定義元件實現 tabBar、navBar微信小程式元件tabBar
- 微信小程式自定義事件微信小程式事件
- 自定義 tabBartabBar
- 微信小程式--》tabBar底部欄微信小程式tabBar
- 微信小程式之『自定義toast』微信小程式AST
- Flutter 自定義 TabBarFluttertabBar
- iOS自定義tabBariOStabBar
- 微信小程式-騷操作,自定義授權對話方塊,且遮蓋層遮住tabBar微信小程式tabBar
- 微信小程式自定義導航欄微信小程式
- 微信小程式自定義tabbar圖示切換點選兩次才選中解決方法微信小程式tabBar
- 微信小程式tabBar顯示問題微信小程式tabBar
- 微信小程式 vue 自定義日曆 sku微信小程式Vue
- 微信小程式-自定義下拉重新整理微信小程式
- 微信小程式使用自定義字型的三種方法微信小程式自定義字型
- 微信小程式之自定義倒數計時元件微信小程式元件
- 微信小程式Tree自定義控制元件實現微信小程式控制元件
- 微信小程式自定義導航欄適配指南微信小程式
- 微信小程式--自定義radio元件樣式微信小程式元件
- 微信小程式API互動的自定義封裝微信小程式API封裝
- 微信小程式-自定義placeholder顏色和樣式微信小程式
- 微信小程式swiper修改自定義指示點樣式微信小程式
- UNI-APP專案模板《自定義TabBar》《上傳圖片》《全域性自定義loading》等功能 主要適配 微信小程式、APP、H5。APPtabBar微信小程式H5
- 自定義react-navigation的TabBarReactNavigationtabBar
- 微信小程式自定義元件微信小程式元件
- 微信小程式自定義tab,多層tab巢狀實現微信小程式巢狀
- 基於uniapp自定義Navbar+Tabbar元件「相容H5+小程式+App端Nvue」APPtabBar元件H5Vue
- iOS OC-自定義TabBar TabBarViewControlleriOStabBarViewController
- 【微信小程式】“errMsg“:“navigateTo:fail can not navigateTo a tabbar page“微信小程式AItabBar
- 自定義TabBar動畫效果 - 頁面轉場(Swift)tabBar動畫Swift
- 小程式tabBar帶文字展示tabBar
- 小程式tabBar跳轉頁面並隱藏tabBartabBar
- 微信小程式使用微信雲託管新增自定義域名並轉發到pexels.com微信小程式
- 小程式自定義表單校驗
- 微信小程式下拉選單自定義元件微信小程式元件
- 微信小程式自定義元件-城市選擇微信小程式元件