微信小程序开发之自定义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 相关文章推荐
javascript full screen 全屏显示页面元素的方法
Sep 27 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
Feb 04 Javascript
基于豆瓣API+Angular开发的web App
Jan 02 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 Javascript
Angularjs自定义指令Directive详解
May 27 Javascript
Vue页面骨架屏的实现方法
May 22 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
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作为Shell脚本语言使用
2006/10/09 PHP
15种PHP Encoder的比较
2007/03/06 PHP
程序员编程十条戒律
2009/07/09 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
PHP反射机制用法实例
2014/08/28 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
Python写的服务监控程序实例
2015/01/31 Python
浅析Python中的序列化存储的方法
2015/04/28 Python
通过Pandas读取大文件的实例
2018/06/07 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
python sqlite的Row对象操作示例
2019/09/11 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
武汉瑞得软件笔试题
2015/10/27 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
教导处工作制度
2014/01/18 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
理财学专业自荐书
2014/06/28 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
JavaScript实例 ODO List分析
2022/01/22 Javascript
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python