微信小程序自定义tabbar的实现
2024-08-28 18:02:53
微信小程序自定义tabbar的实现
目的:当采用微信的自定义tabbar组件的时候,切换的时候会出现闪屏的效果;当使用微信默认的tabbar的时候,限制了tabbar的数量以及灵活配置。
方案:自己动手写一个和微信小程序提供的tabbar相同的效果,而且还可以满足灵活配置的功能.有参照有赞小程序
效果:
- 效果A:
2.效果B:
实现:
项目结构如下:
II 效果A实现:
1》wxml的代码:
Page({
data: {
blockid:0,
bgcolor:'#ffffff',
color:"#cccccc",
selectedColor:'#333333',
showborder:false,
bordercolor:"",
tabbar:[
{
pagePath: "page/home0/index",
selectedIconPath: '/resources/tabbar/homeh.png',
iconPath: '/resources/tabbar/home.png',
text: '首页A',
isdot: false,
number: 0
}, {
pagePath: "page/home1/index",
selectedIconPath: '/resources/tabbar/kindh.png',
iconPath: '/resources/tabbar/kind.png',
text: '首页B',
isdot: true,
number: 0
}, {
pagePath: "page/home2/index",
selectedIconPath: '/resources/tabbar/myh.png',
iconPath: '/resources/tabbar/my.png',
text: '首页C',
isdot: false,
number: 5
}, {
pagePath: "page/home3/index",
selectedIconPath: '/resources/tabbar/shopcarth.png',
iconPath: '/resources/tabbar/shopcart.png',
text: '首页D',
isdot: false,
number: 0
}
]
},
// event.detail 的值为当前选中项的索引
tabbarChange(e) { var index = parseInt(e.detail);
this.setData({
blockid:index
})
}
})
2》json文件如下:
{
"usingComponents": {
"tabbar": "../../components/tabbar/index"
}
}
3》js文件如下:
Page({
data: {
blockid:0,
bgcolor:'#ffffff',
color:"#cccccc",
selectedColor:'#333333',
showborder:false,
bordercolor:"",
tabbar:[
{
pagePath: "page/home0/index",
selectedIconPath: '/resources/tabbar/homeh.png',
iconPath: '/resources/tabbar/home.png',
text: '首页A',
isdot: false,
number: 0
}, {
pagePath: "page/home1/index",
selectedIconPath: '/resources/tabbar/kindh.png',
iconPath: '/resources/tabbar/kind.png',
text: '首页B',
isdot: true,
number: 0
}, {
pagePath: "page/home2/index",
selectedIconPath: '/resources/tabbar/myh.png',
iconPath: '/resources/tabbar/my.png',
text: '首页C',
isdot: false,
number: 5
}, {
pagePath: "page/home3/index",
selectedIconPath: '/resources/tabbar/shopcarth.png',
iconPath: '/resources/tabbar/shopcart.png',
text: '首页D',
isdot: false,
number: 0
}
]
},
// event.detail 的值为当前选中项的索引
tabbarChange(e) { var index = parseInt(e.detail);
this.setData({
blockid:index
})
}
})
III效果B实现:
1》wxml的代码:
<block wx:if="{{blockid==0}}">
这里是首页A
</block>
<block wx:if="{{blockid==1}}">
这里是首页B
</block>
<block wx:if="{{blockid==2}}">
这里是首页C
</block>
<block wx:if="{{blockid==3}}">
这里是首页D
</block> <!--底部tabbar【一般正常用法,index页面特殊用法】-->
<tabbar tabbarData="{{tabbar}}" active="{{0}}" bgcolor="{{bgcolor}}" color="{{color}}" selectedColor="{{selectedColor}}" showborder="{{showborder}}" bind:tapChange="tabbarChange" />
2》json的代码
{
"usingComponents": {
"tabbar": "../../components/tabbar/index"
}
}
3》js的代码
Page({ /**
* 页面的初始数据
*/
data: {
blockid: 0,
bgcolor: 'green',
color: "red",
selectedColor: 'blue',
showborder: false,
bordercolor: "",
tabbar: [{
pagePath: "page/home0/index",
selectedIconPath: '/resources/tabbar/homeh.png',
iconPath: '/resources/tabbar/home.png',
text: '首页A',
}, {
pagePath: "page/home1/index",
selectedIconPath: '/resources/tabbar/kindh.png',
iconPath: '/resources/tabbar/kind.png',
text: '首页B',
}, {
pagePath: "page/home2/index",
selectedIconPath: '/resources/tabbar/myh.png',
iconPath: '/resources/tabbar/my.png',
text: '首页C',
}, {
pagePath: "page/home3/index",
selectedIconPath: '/resources/tabbar/shopcarth.png',
iconPath: '/resources/tabbar/shopcart.png',
text: '首页D',
}]
},
// event.detail 的值为当前选中项的索引
tabbarChange(e) { var index = parseInt(e.detail);
this.setData({
blockid: index
})
},
})
github地址如下:https://github.com/weiyunhelong/WeChatTabbar,欢迎下载并使用!
最新文章
- sys.dm_os_waiting_tasks 引发的疑问(下)
- win10快速开机
- (x&;y) + ((x^y)>;>;1)即x和y的算数平均值
- oracle Instance status: READY&ndash;lsnrctl status|start|stop
- css中使用rgba和opacity设置透明度的区别
- 水池数目(DFS)
- JS正则验证邮箱的格式
- 苹果新贵 Swift 之前世今生
- 通过hash实现前端路由
- 关于Servlet的一些归纳(1)
- 用crontab部署定时任务
- window上安装zabbix agent使用案例
- md5爆破工具
- T4学习- 2、创建设计时模板
- Tag Archives: 海明距离
- iOS transform解决连续多次旋转缩放,实现图片旋转缩放效果
- 【分享】Linux(Ubuntu)下如何自己编译JDK
- windows从0开始学golang--0--安装golang+git+自己写包
- PHP生成缩略图、加水印
- SQL学习笔记一之初识数据库
热门文章
- 第三方库Mantle的简单实用
- 忘记IBM服务器的登录IP
- JS阻止冒泡和取消默认事件(默认行为)
- class 命名规范(三)
- C++ STL bitset 容器详解
- ionic4 ion-modal的用法
- 了解css
- 编程计算2&#215;3阶矩阵A和3&#215;2阶矩阵B之积C。 矩阵相乘的基本方法是: 矩阵A的第i行的所有元素同矩阵B第j列的元素对应相乘, 并把相乘的结果相加,最终得到的值就是矩阵C的第i行第j列的值。 要求: (1)从键盘分别输入矩阵A和B, 输出乘积矩阵C (2) **输入提示信息为: 输入矩阵A之前提示:";Input 2*3 matrix a:\n"; 输入矩阵B之前提示
- python3 消耗CPU的性能,使CPU满载(可以设置进程名称)
- 【shell脚本】显示进度条