微信小程序开发之自定义tabBar的实现


Posted in Javascript onSeptember 06, 2018

最近开发微信小程序,公司要求做一个类似闲鱼的tabbar,但是网上大多资料的tabbar都会在页面切换的时候重新渲染,所以我写了一个不会重新渲染的tabbar,有需要的直接拿走不谢。https://github.com/SuRuiGit/wxapp-customTabbar

在小程序的开发文档中,对tabbar是这样说明的:

如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

Tip:

1.当设置 position 为 top 时,将不会显示 icon

2.tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。

在实际开发过程中,小程序自带的tabbar样式并不能满足设计提供的开发需求,所以需要我们自定义一套属于自己的tabbar。

使用步骤如下:

第一步:找到项目中的tabbarComponent目录,拷贝到你的工程中,然后将tabbarComponent->icon图标替换成你自己的tabbar图片

第二步:到app.json中配置tabBar,这里我就不细说了,只强调闲鱼的tabbar中间的按钮是跳到二级页面,所以不配置在tabBar的list中

第三步:在app.js的onLaunch方法中调用wx.hideTabBar();隐藏系统自带的tabBar

第四步:在app.js中的globalData中加入自定义tabbar的参数,再加入一个方法给tabBar.list配置中的页面使用,代码如下

globalData: {
  userInfo: null,
  tabBar: {
   "backgroundColor": "#ffffff",
   "color": "#979795",
   "selectedColor": "#1c1c1b",
   "list": [
    {
     "pagePath": "/page/index/index",
     "iconPath": "icon/icon_home.png",
     "selectedIconPath": "icon/icon_home_HL.png",
     "text": "首页"
    },
    {
     "pagePath": "/page/myRelease/index",
     "iconPath": "icon/icon_release.png",
     "isSpecial": true,
     "text": "发布"
    },
    {
     "pagePath": "/page/mine/index",
     "iconPath": "icon/icon_mine.png",
     "selectedIconPath": "icon/icon_mine_HL.png",
     "text": "我的"
    }
   ]
  }
 }
editTabbar: function() {
  let tabbar = this.globalData.tabBar;
  let currentPages = getCurrentPages();
  let _this = currentPages[currentPages.length - 1];
  let pagePath = _this.route;
  (pagePath.indexOf('/') != 0) && (pagePath = '/' + pagePath);
  for (let i in tabbar.list) {
   tabbar.list[i].selected = false;
   (tabbar.list[i].pagePath == pagePath) && (tabbar.list[i].selected = true);
  }
  _this.setData({
   tabbar: tabbar
  });
 },

第五步:在tabBar的list中配置的页面的.js文件的data中加入tabbar:{},并在onload方法中调用app.editTabbar();

第六步:在tabBar的list中配置的页面的.json文件中加入

"usingComponents": {

"tabbar": "../../tabbarComponent/tabbar"

}

在.wxml文件中加入<tabbar tabbar="{{tabbar}}"></tabbar>

到目前为止,自定义tabbar就完成啦,撒花!!!!!

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

Javascript 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
jquery BS,dialog控件自适应大小
Jul 06 Javascript
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
JQuery选择器绑定事件及修改内容的方法
Jan 23 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
Feb 17 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
很酷的星级评分系统原生JS实现
Aug 25 Javascript
基于Vuejs框架实现翻页组件
Jun 29 Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 Javascript
JavaScript实现微信红包算法及问题解决方法
Apr 26 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
Vue的watch和computed方法的使用及区别介绍
Sep 06 #Javascript
Vue-component全局注册实例
Sep 06 #Javascript
Vue 监听列表item渲染事件方法
Sep 06 #Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 #Javascript
jQuery实现基本动画效果的方法详解
Sep 06 #jQuery
JavaScript函数、闭包、原型、面向对象学习笔记
Sep 06 #Javascript
Vue中使用clipboard实现复制功能
Sep 05 #Javascript
You might like
php切割页面div内容的实现代码分享
2012/07/31 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
django使用LDAP验证的方法示例
2018/12/10 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
商务日语专业毕业生求职信
2013/10/26 职场文书
机械电子工程专业推荐信范文
2013/11/20 职场文书
电气工程师岗位职责
2014/01/01 职场文书
美容院营销方案
2014/03/05 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
学生病假条范文
2015/08/17 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js