uniapp 实现小程序中自定义tabBar 的方法
uniapp 实现小程序中自定义tabBar 的方法
第一种方式: page.json中配置
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#007AFF",
"borderStyle": "black",
"backgroundColor": "#F8F8F8",
"fontSize": "12px",
"spacing": "5px",
"height": "50px",
"list" : [
{
"pagePath": "pages/index/index",
"text": "头像",
"iconPath": "static/down.png",
"selectedIconPath": "static/down.png"
},
{
"pagePath": "pages/bizhi/index",
"text": "壁纸",
"iconPath": "static/bizhi.png",
"selectedIconPath": "static/bizhi.png"
},
{
"pagePath": "pages/zhenjian/index",
"text": "证件照",
"iconPath": "static/zhenjian.png",
"selectedIconPath": "static/zhenjian.png"
},
{
"pagePath": "pages/zhenjian/index",
"text": "头像易",
"iconPath": "static/txy.png",
"selectedIconPath": "static/txy.png"
}
]
},
定义的内容需要在pages 中声明了。
这种方式定义比较快速,简单。
如果需要根据用户权限,或者在tabBar 上自定义一些逻辑,需要使用自定义的内容
第二种方式 自定义内容
<template>
<view class="tab-bar">
<view v-for="(item,index) in list" :key="index" class="tab-bar-item" @click="switchTab(item, index)">
<image class="tab_img" :src="selected === index ? item.selectedIconPath : item.iconPath"></image>
<view class="tab_text" :style="{color: selected === index ? selectedColor : color}">{{item.text}}</view>
</view>
</view>
</template>
<script>
export default {
props: {
selected: { // 当前选中的tab index
type: Number,
default: 0
},
},
data() {
return {
color: "#333333",
selectedColor: "#d4237a",
list: [
{
"pagePath": "pages/index/index",
"text": "头像",
"iconPath": "https://bj.bcebos.com/txy-dev/txy/main/down.png",
"selectedIconPath": "https://bj.bcebos.com/txy-dev/txy/main/down.png"
},
{
"pagePath": "pages/bizhi/index",
"text": "壁纸",
"iconPath": "https://bj.bcebos.com/txy-dev/txy/main/bizhi.png",
"selectedIconPath": "https://bj.bcebos.com/txy-dev/txy/main/bizhi.png"
},
{
"pagePath": "pages/bizhi/index",
"text": "证件照",
"iconPath": "https://bj.bcebos.com/txy-dev/txy/main/zhenjian.png",
"selectedIconPath": "https://bj.bcebos.com/txy-dev/txy/main/zhengjian.png"
},
{
"pagePath": "pages/bizhi/index",
"text": "头像易",
"iconPath": "https://bj.bcebos.com/txy-dev/txy/main/txy.png",
"selectedIconPath": "https://bj.bcebos.com/txy-dev/txy/main/txy.png"
}
]
}
},
methods: {
switchTab(item, index) {
console.log("item", item)
console.log("index", index)
let url = item.pagePath;
// 对应患者和医生的首页
if (index == 0) {
url = "/pages/index/index"
}
// 对应患者和医生的我的页面
if (index == 1) {
url = "/pages/bizhi/index"
}
if (index == 2) {
uni.navigateToMiniProgram({
appId: 'wxac06eaffe466baa3',
})
// wxacd92e691aba23dd
// wxac06eaffe466baa3
return
}
if (index == 3) {
uni.navigateToMiniProgram({
appId: 'wxacd92e691aba23dd',
})
// wxacd92e691aba23dd
// wxac06eaffe466baa3
return
}
uni.switchTab({
url
})
}
}
}
</script>
<style lang="less">
.tab-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 100rpx;
background: white;
display: flex;
justify-content: center;
align-items: center;
padding-bottom: env(safe-area-inset-bottom); // 适配iphoneX的底部
.tab-bar-item {
flex: 1;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.tab_img {
width: 37rpx;
height: 41rpx;
}
.tab_text {
font-size: 20rpx;
margin-top: 9rpx;
}
}
}
</style>
在需要用到tabBar 的页面 引用。 并且需要关闭第一种方法中默认的
onShow() {
uni.hideTabBar({
animation: false
})
},

下面是我的小程序体验码,希望能和大家共同学习进步


[项目代码] https://gitee.com/eyes-star/txy-openmp.git

[项目代码] https://gitee.com/eyes-star/zjz-openmp.git
uniapp 实现小程序中自定义tabBar 的方法的更多相关文章
- 微信小程序中自定义modal
微信小程序中自定义modal .wxml <modal hidden="{{hidden}}" title="这里是title" confirm-text ...
- 【小程序】小程序中设置 tabBar
小程序中 tabBar 的设置,tabBar 就是底部导航栏,在app.json中配置. list 为数组至少两项.tab栏的 position 为 top 时间,不显示图标. "tabBa ...
- 微信小程序中的tabBar设置
我们先来看一份图,这个设置在官方文档中已经写得很清楚了,我只是做一个总结 注:我写注释是为了方便说明,在小程序中的json文件中是不能用注释的 这个tabBar属于全局属性,因此就在全局配置文件app ...
- 微信小程序中自定义swiper轮播图面板指示点的样式
重置样式: .swiper{ width: 100%; height: 240px; margin-bottom: 0.5rem; position:relative; } div.wx-swiper ...
- 微信小程序中自定义函数的学习使用
新手,最近在给学校搞个党费计算器.需要自己定义函数来实现某个功能. 1.无参函数: 函数都是写在js文件里面的. Page({ data:{ income1:'0', }, cal:function( ...
- 小程序 之自定义tabbar上边框颜色
一.设置borderStyle 二.设置page样式 page::after{ content: ''; position: fixed; left: 0; bottom: 0; width: 100 ...
- 微信小程序中的自定义组件
微信小程序中的组件 前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 ...
- taro中自定义tabbar实现中间图标凸出效果
遇到的一个需求是在tabbar上有一个凸起的小图标, 但是微信自带的tabbar是没有这个效果的, 无奈,只能使用自定义tabbar,查找了多方文档后发现大多是原生小程序实现, 关于taro文档的少之 ...
- 微信小程序中的组件
前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官 ...
- 微信小程序中的自定义组件(components)
其实小程序开发很像vue和react的结合,数据绑定和setData 重新渲染页面的数据,最近发现连写组件都是很像,也是醉了,自我认为哈, 因为小程序可以将页面内的功能模块抽象成自定义组件,以便在 ...
随机推荐
- Job And Schedule (V8R6C3)
KingbaseES 数据库提供了 kdb_schedule 扩展,使得用户能通过类似oracle job 的方式进行job调用.kdb_schedule 提供了三个Schema :dbms_job ...
- PLSQL Developer安装详细步骤,小白,转发
下载软件可以直接在百度网盘里面下载 链接:https://pan.baidu.com/s/1bZNJ71d2-hvkM6PTbdpgAA 提取码:t9sh 然后直接参考这个链接进行安装https:// ...
- [Python]-numpy模块-机器学习Python入门《Python机器学习手册》-01-向量、矩阵和数组
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- centos7.2 安装MongoDB
1.配置阿里云yum仓库 #vim /etc/yum.repos.d/mongodb-org-4.0.repo [mngodb-org] name=MongoDB Repository baseurl ...
- 在k8s中将nginx.conf文件内容创建为ConfigMap挂载到pod容器中
将nginx.conf文件内容创建为ConfigMap user nginx; worker_processes auto; error_log /var/log/nginx/error.log er ...
- echarts pie饼状图绑定点击事件
var valueData = [ {value: 33,name: '诊所'}, {value: 29,name: '汽车服务相关'}, {value: 27, name: '洗衣店'}, {val ...
- APICloud可视化编程(二)
上一期我们为大家讲解低代码在国内市场的当前现状以及APICloud可视化开发工具的组件类型和特点.相信大家对可视化编程有了一个整体的了解,那么今天带大家更进一步的使用组件. 下载开发工具 登录APIC ...
- InnoDB关于事务、锁、MVCC专题
目录 并发所带来的的问题 脏写 脏读 不可重复读 幻读 事务 事务的特性 事务的四种隔离级别 锁 为什么要加锁 InnoDB的七种锁 不同事务RR和RC下加锁的规则 MVCC mvcc进一步提高并发 ...
- 第一个Spring Boot的MVC程序
最近在学习Spring Boot,记录一下学习过程!!!! Spring Boot中的MVC:M(model模型),C(controller控制器),V(view视图) model:是Java的实体B ...
- 几个Caller-特性的妙用
System.Runtime.CompilerServices命名空间下有4个以"Caller"为前缀命名的Attribute,我们可以将它标注到方法参数上自动获取当前调用上下文的 ...