微信小程序自定义底部tarbar的代码实现
本篇文章给大家带来的内容是关于微信小程序自定义底部tarbar的代码实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
先看一看目录
template文件夹里存放tabbar模板。
template/template.wxml
<template><view> <block> <view> <navigator> <view><image></image></view> <view>{{item.text}}</view> </navigator> </view> </block></view></template>
template.css
.icon{ width:54rpx; height: 54rpx;}.tabBar{ width:100%; position: fixed; bottom:0; padding:10rpx; margin-left:-4rpx; background:#F7F7FA; font-size:20rpx; color:#8A8A8A; box-shadow: 6rpx 6rpx 6rpx 6rpx #aaa;} .tabBar-item{ float:left; width:25%; text-align: center; overflow: hidden;}/*当前字体颜色*/.tabBartext{ color:red;}
template.js
//初始化数据function tabbarinit() { return [ { "current":0, "pagePath": "/pages/index/index", "iconPath": "/imgs/home.png", "selectedIconPath": "/imgs/home_on.png", "text": "主页" }, { "current": 0, "pagePath": "/pages/news/news", "iconPath": "/imgs/message.png", "selectedIconPath": "/imgs/message_on.png", "text": "资讯" }, { "current": 0, "pagePath": "/pages/category/category", "iconPath": "/imgs/category.png", "selectedIconPath": "/imgs/category_on.png", "text": "分类" }, { "current": 0, "pagePath": "/pages/buy/buy", "iconPath": "/imgs/buy.png", "selectedIconPath": "/imgs/buy_on.png", "text": "购物" } ]}//tabbar 主入口function tabbarmain(bindName = "tabdata", id, target) { var that = target; var bindData = {}; var otabbar = tabbarinit(); otabbar[id]['iconPath'] = otabbar[id]['selectedIconPath']//换当前的icon otabbar[id]['current'] = 1; bindData[bindName] = otabbar that.setData({ bindData });}module.exports = { tabbar: tabbarmain}
到此改组件完成,然后讲解一下使用方法。
我们先把样式载入到app.wxss
@import "/template/template.wxss";
在index文件夹
index.wxml
<import></import><template></template>
index.js
const app = getApp()var template = require('../../template/template.js');Page({ data: { }, onLoad: function () { template.tabbar("tabBar", 0, this)//0表示第一个tabbar },})
news.wxml与index.wxml一样
news.js如下
const app = getApp()var template = require('../../template/template.js');Page({ data: { }, onLoad: function () { template.tabbar("tabBar", 1, this)//1表示第二个tabbar },})
效果如图