uniapp tabBar 中设置“custom“: true 在H5和app中无效解决办法

uniapp小程序自定义底部tabbar,但是在转成H5和app时发现"custom": true 无效,原生tabbar会显示出来
在这里插入图片描述
解决办法如下
在tabbar的list中设置 “visible”:false


代码如下:"tabBar": {"custom": true,//"custom"仅对小程序生效"color": "#333","fontSize": "12","selectedColor": "#3F8CFF","borderStyle": "black","backgroundColor": "#fff","list": [{"pagePath": "pages/index/index","iconPath": "/static/tabbar/index.png","selectedIconPath": "/static/tabbar/index-active.png","text": "首页","visible":false//"visible"仅对H5}, {"pagePath": "pages/workbench/index","iconPath": "/static/tabbar/workbench.png","selectedIconPath": "/static/tabbar/workbench-active.png","text": "工作台","visible":false},{"pagePath": "pages/mine/index","iconPath": "/static/tabbar/mine.png","selectedIconPath": "/static/tabbar/mine-active.png","text": "我的","visible":false}]}

注意:在App.vue里一定要加上这段代码 uni.hideTabBar,否则在app打包后,会有原生tabbar的样式

<script>export default {onLaunch: function() {//一定要加上这段uni.hideTabBar({animation: false // 是否使用动画效果});},onShow: function() {console.log('App Show')},onHide: function() {console.log('App Hide')}}
</script>

tabbar组件样式代码如下:


<template><!-- Tabbar 组件  --><view><view class="cu-bar" :style="{backgroundColor:tabBarObj.backgroundColor?tabBarObj.backgroundColor:'#fff'}"><view @click="cubarClick(item)" class="cu-bar-box" v-for="(item,index) in tabBarList" :key="index"><view v-if="item.text !='工作台'"><!-- 有站内消息在我的右上角提示 --><!-- <view v-if="item.text =='我的'" class="tishiBox"></view> --><view class=""><image v-if="pageCur ==item.pagePath" class="cu-bar-icon" :src="item.selectedIconPath" mode=""></image><image v-else class="cu-bar-icon" :src="item.iconPath" mode=""></image></view><view :style="{color:pageCur ==item.pagePath?tabBarObj.selectedColor:tabBarObj.color,fontSize:tabBarObj.fontSize+'px'}">{{item.text||'-'}}</view></view><view class="yuanBox" v-else><view class="yuanTop"></view><view class="yuanjuli"></view><view class="yuan" :class="{yuanActive:pageCur ==item.pagePath}"><image v-if="pageCur ==item.pagePath" class="cu-bar-icon yuan-cu-bar-icon":src="item.selectedIconPath" mode=""></image><image v-else class="cu-bar-icon yuan-cu-bar-icon" :src="item.iconPath" mode=""></image></view></view></view></view><view :style="{height:cardHeight+'px'}"><!-- 底部占位使用,内容超出页面高度产生滚动条时,tabbar不会遮盖引用页面内容 --></view></view>
</template>
<script>import pagesJson from '@/pages.json'; // 引用配置文件的tabbar配置信息export default {props: {pageCur: {type: String,default: 'pages/index/index' //默认为首页}, //  tabbar当前页面},data() {return {tabBarObj: pagesJson.tabBar, //tabbar全部配置tabBarList: pagesJson.tabBar.list, //tabbar列表cardHeight: 0, //tabbar高度}},onLoad() {},onShow: function() {},mounted() {let than = thisthis.createIntersectionObserver().relativeToViewport().observe('.cu-bar', (res) => {than.cardHeight = res.intersectionRect.height || 0// console.log("元素高度信息",res.intersectionRect.height)// res.id // 目标节点 id// res.dataset // 目标节点 dataset// res.intersectionRatio // 相交区域占目标节点的布局区域的比例// res.intersectionRect // 相交区域// res.intersectionRect.left // 相交区域的左边界坐标// res.intersectionRect.top // 相交区域的上边界坐标// res.intersectionRect.width // 相交区域的宽度// res.intersectionRect.height // 相交区域的高度})},methods: {cubarClick(item) {// console.log("点击的元素",item)uni.switchTab({url: '/' + item.pagePath});}}}
</script><style scoped>.cu-bar {display: flex;width: 100vw;padding-bottom: 40rpx;padding-top: 10rpx;position: fixed;bottom: 0px;left: 0px;right: 0px;box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);}.cu-bar .cu-bar-box {flex: 1;text-align: center;position: relative;}.cu-bar .cu-bar-icon {width: 50rpx;height: 50rpx;display: inline-block;}.yuanBox {position: relative;background: pink;text-align: center;}.yuanTop {height: 80rpx;background-color: #fff;border-radius: 78rpx 78rpx 0rpx 0rpx;border-bottom: 0rpx;width: 160rpx;margin: 0 auto;box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);position: absolute;top: -35rpx;left: 50%;margin-left: -80rpx;}.yuanjuli {height: 60rpx;margin-top: 0rpx;background: #fff;position: absolute;width: 100%;top: -10rpx;}.yuan {display: inline-flex;background: #fff;border: 2rpx solid #ccc;width: 96rpx;height: 96rpx;padding: 14rpx;box-sizing: border-box;border-radius: 50%;align-items: center;justify-content: center;overflow: hidden;position: absolute;left: 50%;margin-left: -48rpx;top: -14rpx;}.yuan .yuan-cu-bar-icon {width: 100%;height: 100%;}.yuanActive {background: #3F8CFF;border: 2rpx solid #3F8CFF;}.tishiBox {width: 20rpx;height: 20rpx;border-radius: 50%;background-color: #ff3737;position: absolute;left: 60%;top: 0rpx;}
</style>

引用页面代码如下:

<tabbarBox pageCur="pages/index/index" />
//注意:pageCur  引用tabbar页面地址是什么,这里就传什么   tabbar组件跳转时使用<script>import tabBox from '@/components/tabBox.vue';export default {components: {tabbarBox},}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot学生操行评分系统源码设计开发

概述 基于SpringBoot框架开发的学生操行评分系统完整项目&#xff0c;该系统采用主流技术栈开发&#xff0c;包含完善的评分管理功能模块&#xff0c;是学校管理、教育培训机构理想的数字化解决方案&#xff0c;非常适合作为设计参考或二次开发基础项目。 主要内容 5.1 管理…

从代码学习深度学习 - 单发多框检测(SSD)PyTorch版

文章目录 前言工具函数数据处理工具 (`utils_for_data.py`)训练工具 (`utils_for_train.py`)检测相关工具 (`utils_for_detection.py`)可视化工具 (`utils_for_huitu.py`)模型类别预测层边界框预测层连接多尺度预测高和宽减半块基础网络块完整的模型训练模型读取数据集和初始化…

基于STM32的温湿度光照强度仿真设计(Proteus仿真+程序设计+设计报告+讲解视频)

这里写目录标题 **1.****主要功能****2.仿真设计****3.程序设计****4.设计报告****5.下载链接** 基于STM32的温湿度光照强度仿真设计(Proteus仿真程序设计设计报告讲解视频&#xff09; 仿真图Proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设计编号…

SSH 服务部署指南

本指南涵盖 OpenSSH 服务端的安装、配置密码/公钥/多因素认证&#xff0c;以及连接测试方法。 适用系统&#xff1a;Ubuntu/Debian、CentOS/RHEL 等主流 Linux 发行版。 1. 安装 SSH 服务端 Ubuntu/Debian # 更新软件包索引 sudo apt update# 安装 OpenSSH 服务端 sudo apt i…

《Python星球日记》 第46天:决策树与随机森林

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏:《Python星球日记》,限时特价订阅中ing 目录 一、前言二、决策树算法原理1. 决策树简介2. 决策树的分裂准则(1) 信息熵与信息增益(2) 基尼不纯…

Vue2:引入公共JS,通过this调用

tools.js // 图片加上前缀 baseurl 是请求域名 img 是图片路径export function getimgurl(img) {return ${this.$baseurl}${img}}main.js import baseUrl from "/api/baseUrl.js" Vue.prototype.$baseurl baseUrlimport {getimgurl} from /api/tool.js; Vue.protot…

【Hot 100】 146. LRU 缓存

目录 引言LRU 缓存官方解题LRU实现&#x1f4cc; 实现步骤分解步骤 1&#xff1a;定义双向链表节点步骤 2&#xff1a;创建伪头尾节点&#xff08;关键设计&#xff09;步骤 3&#xff1a;实现链表基础操作操作 1&#xff1a;添加节点到头部操作 2&#xff1a;移除任意节点 步骤…

【Linux】swap交换分区管理

目录 一、Swap 交换分区的功能 二、swap 交换分区的典型大小的设置 2.1 查看交换分区的大小 2.1.1 free 2.1.2 cat /proc/swaps 或 swapon -s 2.1.3 top 三、使用交换分区的整体流程 3.1 案例一 3.2 案例二 一、Swap 交换分区的功能 计算机运行一个程序首先会将外存&am…

【计算机网络】用户从输入网址到网页显示,期间发生了什么?

1.URL解析 浏览器分解URL&#xff1a;https://www.example.com/page 协议&#xff1a;https域名&#xff1a;www.example.com路径&#xff1a;/page 2.DNS查询&#xff1a; 浏览器向DNS服务器发送查询请求&#xff0c;将域名解析为对应的IP地址。 3.CDN检查(如果有)&#…

架空输电线巡检机器人轨迹优化设计

架空输电线巡检机器人轨迹优化 摘要 本论文针对架空输电线巡检机器人的轨迹优化问题展开研究,综合考虑输电线复杂环境、机器人运动特性及巡检任务需求,结合路径规划算法、智能优化算法与机器人动力学约束,构建了多目标轨迹优化模型。通过改进遗传算法与模拟退火算法,有效…

根据窗口大小自动调整页面缩放比例,并保持居中显示

vue 项目 直接上代码 图片u1.png 是个背景图片 图片u2.png 是个遮罩 <template><div id"app"><div class"viewBox"><divclass"screen":style"{ transform: translate(-50%,-50%…

初学Python爬虫

文章目录 前言一、 爬虫的初识1.1 什么是爬虫1.2 爬虫的核心1.3 爬虫的用途1.4 爬虫分类1.5 爬虫带来的风险1.6. 反爬手段1.7 爬虫网络请求1.8 爬虫基本流程 二、urllib库初识2.1 http和https协议2.2 编码解码的使用2.3 urllib的基本使用2.4 一个类型六个方法2.5 下载网页数据2…

oracle 数据库sql 语句处理过程

14.1SQL语句处理过程 在进行SQL语句处理优化前&#xff0c;需要先熟悉和了解SQL语句的处理过程。 每种类型的语句在执行时都需要如下阶段&#xff1a; 第1步: 创建游标。 第2步: 分析语句。 第5步: 绑定变量。 第7步: t运行语句。 第9步: 关闭游标。 如果使用了并行功能&#x…

pm2 list查询服务时如何通过name或者namespace进行区分

在 PM2 中&#xff0c;如果 pm2 list 显示的所有服务名称&#xff08;name&#xff09;相同&#xff0c;就无法直观地区分不同的进程。这时可以通过 --namespace&#xff08;命名空间&#xff09; 或 自定义 name 来区分服务。以下是解决方案&#xff1a; 方法 1&#xff1a;启…

[python] 函数基础

二 函数参数 2.1 必备参数(位置参数) 含义: 传递和定义参数的顺序及个数必须一致 格式: def func(a,b) def func_1(id,passwd):print("id ",id)print("passwd ",passwd) func_1(10086,123456) 2.2 默认参数 函数: 为函数的参数提供一个默认值,如果调…

超大规模SoC后仿真流程与优化

在超大规模SoC设计中,是否需要进行全芯片后仿真(Full-Chip Post-layout Simulation)取决于多个因素,包括设计复杂度、项目风险、资源限制以及验证目标。以下是针对这一问题的系统性分析: 1. 全芯片后仿真的必要性 需要全芯片后仿真的场景 系统级交互验证: 跨模块信号交互…

深入理解 Docker 网络原理:构建高效、灵活的容器网络

在现代软件开发中&#xff0c;Docker 已经成为了容器化技术的代名词&#xff0c;广泛应用于开发、测试和生产环境。Docker 使得开发者能够将应用及其依赖打包成一个轻量级的容器&#xff0c;并通过 Docker 容器化技术来实现高效的部署与管理。 然而&#xff0c;在日常使用 Dock…

leetcode 242. Valid Anagram

题目描述 因为s和t仅仅包含小写字母&#xff0c;所以可以开一个26个元素的数组用来做哈希表。不过如果是unicode字符&#xff0c;那就用编程语言自带的哈希表。 class Solution { public:bool isAnagram(string s, string t) {int n s.size();if(s.size() ! t.size())return …

4、反应釜压力监控系统 - /自动化与控制组件/reaction-vessel-monitor

76个工业组件库示例汇总 反应釜压力监控组件 这是一个用于反应釜压力监控的自定义组件&#xff0c;专为化工厂反应釜压力监控设计。采用苹果工业风格界面&#xff0c;简洁优雅&#xff0c;功能实用&#xff0c;易于使用。 功能特点 实时压力可视化&#xff1a;直观展示反应…

系统思考助力富维东阳

刚刚完成了长春一家汽车零配件公司关于系统思考的项目&#xff01; 在开班仪式上&#xff0c;公司总经理深刻阐述了项目的背后意义&#xff0c;强调了系统思考与公司战略的紧密联系。这不仅是一次培训&#xff0c;更是一次关于“如何全方位看待问题”的深度对话。 在这个过程中…