官方给了一个tabbar的demo,但代码碎片太严重,追踪起来也特别费劲,所以我就重构了一下代码。现在把一些思路分享给大家,同时也建议官方能把demo的代码尽量规范化。毕竟是开源嘛,代码是给千千万万的开发者阅读的,尽量追求极致,这样更能显得官方的技术实力:)。
代码实现的功能: 点击tabbar切换颜色
未实现的功能: 子webview切换
var tabbar = {
options: {
active_color: '#42BD56',
font_color: '#cccccc',
subpages: [{
url: './page/notice.html',
title: '通知'
}, {
url: './page/more.html',
title: '发现'
}, {
url: './page/my.html',
title: '我'
}]
},
init: function() {
//设置第一个item为选中
tabbar.selectItem(0)
//这里可以放初始化子webview,待实现
},
//重置item
reselectItem: function(totalNum) {
var totalNum = totalNum ? totalNum : 4
for(var i = 0; i < totalNum; i++) {
tabbarItems[i].tags[0].textStyles.color = tabbar.options.font_color
tabbarItems[i].tags[1].textStyles.color = tabbar.options.font_color
self.updateSubNViews(tabbarItems)
}
//这里可以重置子webview,待实现
},
//设置选中的item
selectItem: function(index) {
tabbarItems[index].tags[0].textStyles.color = tabbar.options.active_color
tabbarItems[index].tags[1].textStyles.color = tabbar.options.active_color
self.updateSubNViews(tabbarItems)
//这里可以显示点击的webview,待实现
}
}
如何调用
var self, tabbarItems = [];
mui.plusReady(function() {
self = plus.webview.currentWebview()
tabbarItems = self.getStyle().subNViews
tabbar.init()
})
当然我这个是基于官方的思路,只是重新整理了一下代码,官方的实力还是很牛的!这里也不是说我代码非常好,只是希望尽量简洁一点。
接下的功能:实现点击切换子webview