前言: 在开发小程序过程中,如果你需要根据不同用户角色显示不同底部导航;或者导航样式需要个性化设计。此时就需要用到自定义底部导航 custom-tab-bar。

具体操作:

1、根目录下创建custom-tab-bar目录

2、在app.json文件中配置导航信息

"tabBar": {"custom": true, // 开启自定义导航"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "black","backgroundColor": "#ffffff","list": [ // 配置导航按钮信息 如果按条件显示不同按钮的话;这里一定要把所有的按钮全量的都配置上(比如当前示例中,登录前显示首页和我的两个按钮;登录后显示首页、工作台、我的三个按钮;在这里要把可能出现的按钮全部配置上){"pagePath": "pages/home/index",  //页面路由"iconPath": "/img/icon_home_def.png", // 按钮图标"selectedIconPath": "/img/icon_navbar_homesel.png", // 选中时图标"text": "首页" // 按钮文字},{"pagePath": "pages/workbench/index","iconPath": "/img/icon_navbar_workdef.png","selectedIconPath": "/img/icon_navbar_worksel.png","text": "工作台"},{"pagePath": "pages/my/index","iconPath": "/img/icon_navbar_userdef.png","selectedIconPath": "/img/icon_navbar_usersel.png","text": "我的"}]
},

3、custom-tab-bar/index.wxml 文件内容

<!--miniprogram/custom-tab-bar/index.wxml-->
<cover-view class="tab-bar"><cover-view class="tab-bar-border"></cover-view><cover-view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab"><cover-image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></cover-image><cover-view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</cover-view></cover-view>
</cover-view>

4、custom-tab-bar/index.js 文件内容

Component({data: {selected: 0,color: "#7A7E83",selectedColor: "#ff0000",list: []},attached() {this.setData({list: [{"pagePath": "/pages/home/index","iconPath": "/img/icon_home_def.png","selectedIconPath": "/img/icon_navbar_homesel.png","text": "首页"},{"pagePath": "/pages/my/index","iconPath": "/img/icon_navbar_userdef.png","selectedIconPath": "/img/icon_navbar_usersel.png","text": "我的"}]})},methods: {switchTab(e) {const data = e.currentTarget.datasetconst url = data.pathwx.switchTab({url})this.setData({selected: data.index})}}
})

5、custom-tab-bar/index. wxss文件内容

.tab-bar {position: fixed;bottom: 0;left: 0;right: 0;height: 48px;padding-top: 4px;background: white;display: flex;padding-bottom: env(safe-area-inset-bottom);
}.tab-bar-border {background-color: rgba(0, 0, 0, 0.33);position: absolute;left: 0;top: 0;width: 100%;height: 1px;transform: scaleY(0.5);
}.tab-bar-item {flex: 1;text-align: center;display: flex;justify-content: center;align-items: center;flex-direction: column;
}.tab-bar-item cover-image {width: 27px;height: 27px;
}.tab-bar-item cover-view {font-size: 10px;
}

6、导航跳转到的页面内

// 这样按钮才能正确显示选中效果
onShow(){if (typeof this.getTabBar === 'function' &&this.getTabBar()) {this.getTabBar().setData({selected: 0})}
},

7.效果:

登录前:

登录后:

小程序自定义底部导航 custom-tab-bar相关推荐

  1. 微信小程序-自定义底部导航

    代码地址如下: http://www.demodashi.com/demo/14258.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  2. 微信小程序自定义底部导航栏遮挡页面内容(已解决)

    今天也是努力写毕设的一天~ 这几天在实现旅行日记的笔记详情界面,先实现了自定义的底部导航栏,在这里我使用的是iView Weapp,具体的介绍我放在这里了~ 快速上手 iView Weapp 跟着里面 ...

  3. tabBar 自定义,小程序自定义底部导航栏

    创建一个自定义组件 my_tab,组件代码在后面,先看调用自定义组件的代码,比如我需要在index 页面调用,就在index.json中引用组件,index.json 代码(引用的路径为你创建的自定义 ...

  4. html导航栏代码跳转,微信小程序自定义底部导航栏tabBar(含跳转页面wx.navigateTo)...

    一.app.json配置 这里配置 {"pages": ["pages/usersLists/usersLists","pages/addMember ...

  5. 你会微信小程序自定义底部导航栏吗?

    一. 在目录下创建文件如下图: tabbar.js: // pages/tabbar/tabbar.js const app = getApp(); Component({/*** 组件的属性列表*/ ...

  6. 微信小程序 自定义顶部导航栏标题 navigationStyle

    微信小程序 自定义顶部导航栏标题 单页面自定义导航栏 修改需要自定义的页面,的页面配置.json文件 全部页面自定义导航 修改公共页面配置app.json 单页面自定义导航栏 修改需要自定义的页面,的 ...

  7. (转载)微信小程序自定义头部导航栏

    本文转载自微信小程序自定义头部导航栏 微信小程序自定义头部导航栏 先看下demo的效果: 最终要实现的效果: 在tabbar页面不显示左侧按钮: 分享出去的页面进入后不显示左侧返回按钮: 点击返回按钮 ...

  8. html自定义js程序,JS中微信小程序自定义底部弹出框

    实现微信小程序底部弹出框效果,代码分为html,css和js两部分,具体代码详情大家参考下本文. html CSS .commodity_screen { width: 100%; height: 1 ...

  9. 解决小程序自定义底部菜单切换闪动

    解决小程序自定义底部菜单切换闪动 业务上可能会有一个需求使用自定义底部菜单相信会有很多人遇到过这个需求 但是自定义底部菜单会有一个问题,在点击切换页面的时候底部菜单会重新加载,导致页面闪动,比较影响用 ...

最新文章

  1. 【PHPExcel】各种数据类型
  2. java多线程系列_Java多线程实战系列
  3. mysql insert 锁
  4. 白盒测试之初识gtest工具
  5. 数据库-in子句-exists子句
  6. python序列数据类型_Python 数据类型 之 序列类型
  7. C语言打印输出红色字体
  8. 华为发布基于自进化AI的HiSec Insight安全态势感知系统
  9. 完全没法比!华为P40 Pro和iPhone 9宣传视频同曝光
  10. SpringBoot配置绑定的两种方式
  11. Atitit 研发体系 之道 attilax著 艾龙著 1. 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程、、项目及管道管理(
  12. iai控制器服务器ON信号,IAI控制器型号说明的.pdf
  13. Mysql CPU占用100%查询
  14. d3dx9_42.dll缺少
  15. Python-《原神》荒海雷立方机关破解二
  16. js颜色加深或者减淡
  17. android隐私违规获取问题处理 及 Hook拦截处理记录 (VirtualXposted/epic等)及 android/iOS 多bundle加载方式修复方案
  18. MPLAB 创建新项目
  19. 云呐数据备份|什么是离线磁带设备
  20. Pdf转长图用什么软件,怎么操作Pdf转长图

热门文章

  1. c51中断优先级c语言,51单片机的中断优先级及中断嵌套
  2. java 匿名接口_匿名内部类实现接口
  3. Adnroid 自定义流式布局
  4. iOS 企业包无法安装
  5. 凭什么都是Java开发三年,而他能进大厂薪资是“我”2倍?
  6. 跌破发行价——瑞幸咖啡这个案例,小白可能会疑惑的几个问题
  7. 去除COD有机物树脂A-722MP
  8. 2022年农信银网络安全竞赛3-2 ez_raw简单取证writeup
  9. Python:data:image/png;base64图片编码解码
  10. c语言常见warning的消除方法及重要性