微信小程序自定义tabBar组件开发详解


Posted in Javascript onSeptember 24, 2020

本文实例为大家分享了微信小程序自定义tabBar组件的具体代码,供大家参考,具体内容如下

以下代码保存在github地址

先看一看目录

微信小程序自定义tabBar组件开发详解

template文件夹里存放tabbar模板。

template/template.wxml

<template name="tabBar">
<view class="tabBar">
 <block wx:for="{{tabBar}}" wx:for-item="item" wx:key="tabBar">
 <view class="tabBar-item">
 <navigator open-type="redirect" url="{{item.pagePath}}">
 <view><image class="icon" src='{{item.iconPath}}'></image></view>
 <view class="{{item.current== 1 ? 'tabBartext' :''}}">{{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 src="../../template/template.wxml"/>
<template is="tabBar" data="{{tabBar:bindData.tabBar}}"/>

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
 },

})

效果如图

微信小程序自定义tabBar组件开发详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js实现多域名不同文件的调用方法
Jan 12 Javascript
基于jquery的loading效果实现代码
Nov 05 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 Javascript
js网页右下角提示框实例
Oct 14 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
Vue递归实现树形菜单方法实例
Nov 06 #Javascript
electron中使用bootstrap的示例代码
Nov 06 #Javascript
vue实现自定义日期组件功能的实例代码
Nov 06 #Javascript
浅谈Vue数据响应思路之数组
Nov 06 #Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 #Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 #Javascript
微信小程序实现选项卡效果
Nov 06 #Javascript
You might like
php array_search() 函数使用
2010/04/13 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python实现的计数排序算法示例
2017/11/29 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python实现机器学习之多元线性回归
2018/09/06 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
django中related_name的用法说明
2020/05/20 Python
什么是python的自省
2020/06/21 Python
python中sys模块是做什么用的
2020/08/16 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
总裁助理岗位职责
2014/02/17 职场文书
企业宣传工作方案
2014/06/02 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
护士自荐信怎么写
2015/03/06 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
邹越演讲观后感
2015/06/15 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python