uniapp 怎么设置凸起的底部tabbar

1. uniapp 怎么设置凸起的底部tabbar

在这里插入图片描述

1.1. 方案一系统提供

1.1.1. 使用uniapp官方提供的属性midButton

  使用时,list数组须为偶数
(1)pages.json

"tabBar": {"custom": true,"color": "#8F8F94","selectedColor": "#007aff","borderStyle": "black","backgroundColor": "#ffffff","iconWidth": "30px","fontSize": "13px","list": [{"pagePath": "pages/main/home/home","iconPath": "static/main/icon_main_home_normal.png","selectedIconPath": "static/main/icon_main_home_select.png","text": "首页"},{"pagePath": "pages/main/apply/apply","iconPath": "static/main/icon_main_apply_normal.png","selectedIconPath": "static/main/icon_main_apply_select.png","text": "应用"},{"pagePath": "pages/main/msg/msg","iconPath": "static/main/icon_main_msg_normal.png","selectedIconPath": "static/main/icon_main_msg_select.png","text": "消息"},{"pagePath": "pages/main/mine/mine","iconPath": "static/main/icon_main_mine_normal.png","selectedIconPath": "static/main/icon_main_mine_select.png","text": "我的"}],"midButton": {"pagePath": "pages/newsList/newsList","iconPath": "static/main/icon_main_apply_normal.png","selectedIconPath": "static/main/icon_main_apply_select.png","width": "80px","height": "80px","iconWidth": "60px","iconheight": "60px","text": "会员"}},

(2)App.vue

<script>export default {onLaunch: function() {console.log('App Launch')//监听凸起页面uni.onTabBarMidButtonTap(()=>{console.log('App La345unch')uni.navigateTo({url: './pages/newsList/newsList'});})},onShow: function() {console.log('App Show')},onHide: function() {console.log('App Hide')}}
</script><style>/*每个页面公共css */
</style>

1.2. 自定义tabBar组件

1.2.1. 把pages.json里的 “custom”: true,

  新建组件tabBar.vue
在这里插入图片描述
(1)tab-bar.vue

<template><view class="tab-layout"><ul class='tab-ul-layout':class="showMiddleButton === true?'tab-item-middle':'tab-item-default'"><li v-for="(item, index) in tabList"class="tab-item-normal":class="item.middleClass"@click="handlePush(item, index)":key="index"><view class="item-img-box"><image class="item-img":src="tabIndex == index ?item.selectedIconPath : item.iconPath"/></view><view :class="tabIndex == index?'tab-item-title-select item-text2':'tab-item-title-normal item-text'">{{item.text}}</view></li></ul></view>
</template><script>export default {props: {tabIndex: { //当前选中的tab项type: String,default: 0}},data() {return {/** iconPath: 默认icon图片路径* selectedIconPath: 选中icon图片路径* text: tab按钮文字* pagePath:页面路径* middleClass:中间按钮样式类名* tabList最小两项,最多五项* tabList长度为奇数时,中间按钮才会突出显示**/tabList: [{iconPath: '/static/main/icon_main_home_normal.png',selectedIconPath: '/static/main/icon_main_home_select.png',text: '首页',pagePath: '/pages/main/home/home',middleClass: ''},{iconPath: '/static/main/icon_main_apply_normal.png',selectedIconPath: '/static/main/icon_main_apply_select.png',text: '审批',pagePath: '/pages/main/approval/approval',middleClass: ''},{iconPath: '/static/main/icon_main_apply_normal.png',selectedIconPath: '/static/main/icon_main_apply_select.png',text: '工作台',pagePath: '/pages/main/apply/apply',middleClass: 'tab-item-middle'},{iconPath: '/static/main/icon_main_msg_normal.png',selectedIconPath: '/static/main/icon_main_msg_select.png',text: '消息',pagePath: '/pages/main/msg/msg',},{iconPath: '/static/main/icon_main_mine_normal.png',selectedIconPath: '/static/main/icon_main_mine_select.png',text: '我的',pagePath: '/pages/main/mine/mine',middleClass: ''}],showMiddleButton: false,};},computed: {getHeight() {return Number(this.height);},},mounted() {},methods: {//点击按钮handlePush(item, index) {if (this.tabIndex !== index) {// uni.reLaunch({//     url: `${item.pagePath}?tabIndex=${index}`,// })uni.switchTab({url: `${item.pagePath}?tabIndex=${index}`,});}},}}
</script><style lang="scss">.tab-layout{width: 100vw;}.tab-ul-layout {align-items: center;justify-content: center;height: 80px;padding: 0; //解决偏移display: flex;flex-flow: row wrap;position: fixed;bottom: 0;left: 0;z-index: 999;background-size: contain;width: 100vw;}.tab-item-default {background-color: #FFFFFF;border-top: 1px #dddddd solid;}.tab-item-middle {position: relative;/*background-image: url("https://res/nav_bar_bg_2x.png");*//*background-repeat: no-repeat;*/background-size: cover;}.tab-item-normal {flex: 1;flex-direction: column;align-items: center;display: flex;.item-img-box {width: 44px;height: 42px;margin-bottom: 1px;position: relative;}.item-img {width: 44px;height: 42px;}.item-text {}.item-text2 {}}.tab-item-middle {position: relative;.item-img-box {position: absolute;width: 106px;height: 106px;z-index: 1002;bottom: 1px;}.item-img {width: 106px;height: 106px;}.item-text {position: absolute;z-index: 1002;bottom: -20px;}.item-text2 {position: absolute;z-index: 1002;bottom: -20px;}}.tab-item-title-normal {font-size: 20px;color: #333333;}.tab-item-title-select {font-size: 20px;color: #007aff;}</style></style>

(2)pages.json

{"pages": [//pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/main/home/home","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,"navigationStyle": "custom"}},{"path": "pages/main/msg/msg","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,"navigationStyle": "custom"}},{"path": "pages/main/work/work","style": {"navigationBarTitleText": "","enablePullDownRefresh": false}},{"path": "pages/main/mine/mine","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,"navigationStyle": "custom"}},{"path": "pages/main/apply/apply","style": {"navigationBarTitleText": "","enablePullDownRefresh": false,"navigationStyle": "custom"}},{"path": "pages/index/index","style": {"navigationBarTitleText": "uni-app"}},{"path": "pages/newsList/newsList","style": {"navigationBarTitleText": "","enablePullDownRefresh": false}},{"path" : "pages/main/approval/approval","style" :{"navigationBarTitleText" : "","enablePullDownRefresh" : false}}],"tabBar": {"custom": true,"color": "#8F8F94","selectedColor": "#007aff","borderStyle": "black","backgroundColor": "#ffffff","iconWidth": "30px","fontSize": "13px","list": [{"pagePath": "pages/main/home/home","iconPath": "static/main/icon_main_home_normal.png","selectedIconPath": "static/main/icon_main_home_select.png","text": "首页"},{"pagePath": "pages/main/apply/apply","iconPath": "static/main/icon_main_apply_normal.png","selectedIconPath": "static/main/icon_main_apply_select.png","text": "应用"},{"pagePath": "pages/main/approval/approval","iconPath": "static/main/icon_main_apply_normal.png","selectedIconPath": "static/main/icon_main_apply_select.png","text": "工作台"},{"pagePath": "pages/main/msg/msg","iconPath": "static/main/icon_main_msg_normal.png","selectedIconPath": "static/main/icon_main_msg_select.png","text": "消息"},{"pagePath": "pages/main/mine/mine","iconPath": "static/main/icon_main_mine_normal.png","selectedIconPath": "static/main/icon_main_mine_select.png","text": "我的"}]},"globalStyle": {"navigationBarTextStyle": "black","navigationBarTitleText": "uni-app","navigationBarBackgroundColor": "#F8F8F8","backgroundColor": "#F8F8F8"},"uniIdRouter": {}
}

(3)home.vue

<template><view class="content"><view class="text-area"><text class="title">{{title}}</text><text class="title2">{{title}}</text><text class="title2">{{title}}</text><text class="title2">{{title}}</text><text class="title2">{{title}}</text><text class="title2">{{title}}</text><text class="title2">{{title}}</text><text class="title2">{{title}}</text></view><tabBar class="my" tabIndex=0></tabBar></view>
</template><script>import tabBar from '../../../components/tab-bar'export default {components: {tabBar},data() {return {title: '我是首页'}},onLoad() {},methods: {}}
</script><style>
.my{ width: 100vw}
.text-area {display: flex;flex-direction: column;justify-content: center;
}
.title {font-size: 36rpx;color: #8f8f94;
}
.title2 {font-size: 36rpx;color: #8f8f94;margin-top: 300rpx;
}
</style>

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

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

相关文章

树莓派4B 学习笔记3: 系统自动更新时间_测试CSI摄像头_安装OpenCv_4.6(未成功编译源码)_备份树莓派镜像

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本文我只是安装了OpenCv 4.6&#xff0c;但编译源码失败了&#xff01;有关 OpenCv 部分仅做笔记暂存&#xff01; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令…

【记录】打印|用浏览器生成证件照打印PDF,打印在任意尺寸的纸上(简单无损!)

以前我打印证件照的时候&#xff0c;我总是在网上找在线证件照转换或者别的什么。但是我今天突然就琢磨了一下&#xff0c;用 PDF 打印应该也可以直接打印出来&#xff0c;然后就琢磨出来了&#xff0c;这么一条路大家可以参考一下。我觉得比在线转换成一张 a4 纸要方便的多&am…

基于PHP+MySQL组合开发的720VR全景小程序源码系统 一键生成三维实景 前后端分离带网站的安装代码包以及搭建教程

系统概述 这款源码系统是专门为实现 720VR 全景展示而设计的。它结合了先进的技术和创新的理念&#xff0c;能够将真实场景以全景的形式呈现给用户&#xff0c;让用户仿佛身临其境。该系统采用 PHP 进行后端开发&#xff0c;MySQL 作为数据库管理系统&#xff0c;确保了系统的…

SAP PP学习笔记14 - MTS(Make-to-Stock) 按库存生产(策略10),以及生产计划的概要

上面讲了SAP里面的基础知识&#xff0c;BOM&#xff0c;作业手顺&#xff08;工艺路线&#xff09;&#xff0c;作业区&#xff08;工作中心&#xff09;&#xff0c;MRP&#xff0c;MPS等概念&#xff0c;现在该到用的时候了。 SAP PP学习笔记07 - 简单BOM&#xff0c;派生BO…

17、Spring系列-SpringMVC-请求源码流程

前言 Spring官网的MVC模块介绍&#xff1a; Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块的名称&#xff08;spring-webmvc&#xff09;&#xff0c;但它通常被称为“ Spring MVC…

【C++奇妙冒险】日期类Date的实现

文章目录 前言日期类Date的接口设计构造函数和打印函数获取日期并判断日期是否合法日期类的大小比较关系<运算符重载 判断小于运算符重载 判断相等<运算符重载 判断小于等于>运算符重载 判断大于> 运算符重载 判断大于等于! 运算符重载 不等于 日期类计算日期天数日…

C++ 的 Tag Dispatching(标签派发) 惯用法

目录 1.概述 2.标准库中的例子 3.使用自己的 Tag Dispatching 3.1.使用 type traits 技术 3.2.使用 Type_2_Type 技术 4.Tag Dispatching的使用场景 5.总结 1.概述 一般重载函数的设计是根据不同的参数决定具体做什么事情&#xff0c;编译器会根据参数匹配的原则确定正确…

数据库之函数、存储过程

函数、存储过程 1.函数 函数&#xff0c;常用于对一个或多个输入参数进行操作&#xff0c;主要目的是返回一个结果值&#xff0c;就是一种方法&#xff0c;在postgre里存放的位置叫function&#xff0c;比如创建一个计算长方面积的函数。 举例&#xff1a;建立一个计算长方形…

基于GTX 8B10B编码的自定义PHY接收模块(高速收发器十三)

点击进入高速收发器系列文章导航界面 前文完成了发送模块的设计&#xff0c;本文接着完成接收模块的设计&#xff0c;接收模块相对发送模块会更加麻烦。 1、设计思路 前文在讲解官方示例工程时&#xff0c;提到GTX IP的接收部分没有做字对齐&#xff0c;需要用户自己编写字对齐…

---初始Linux---

一、认识计算机 计算机 硬件 软件 硬件&#xff1a;就是计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称&#xff08;CPU\GPU\...&#xff09; 软件&#xff1a;是用户和计算机硬件之间及进行交流的工具 然而一个简单的计算机或者说基本的计算机就是有两大…

Android开机动画,framework修改Bootanimation绘制文字。

文章目录 Android开机动画&#xff0c;framework修改Bootanimation动画绘制文字。 Android开机动画&#xff0c;framework修改Bootanimation动画绘制文字。 frameworks/base/cmds/bootanimation/bootanimation.cpp 绘制时间的一个方法 // We render 12 or 24 hour time. void…

Linux 僵尸进程和孤儿进程

一.Z(zombie)-僵尸进程 1.僵死状态&#xff08;Zombies&#xff09;是一个比较特殊的状态。当进程退出并且父进程&#xff08;使用wait()系统调用后&#xff09;没有读取到子进程退出的返回代码时就会产生僵死(尸)进程 2.僵死进程会以终止状态保持在进程表中&#xff0c;并且会…

Spring 中如何控制 Bean 的加载顺序?

如果你脱口而出说添加 Order 注解或者是实现 Ordered 接口&#xff0c;那么恭喜&#xff0c;你掉坑了。 一 Order 注解和 Ordered 接口 在 Spring 框架中&#xff0c;Order 是一个非常实用的元注解&#xff0c;它位于 spring-core 包下&#xff0c;主要用于控制某些特定上下文…

SQL实验 带函数查询和综合查询

一、实验目的 1&#xff0e;掌握Management Studio的使用。 2&#xff0e;掌握带函数查询和综合查询的使用。 二、实验内容及要求 1&#xff0e;统计年龄大于30岁的学生的人数。 --统计年龄大于30岁的学生的人数。SELECT COUNT(*) AS 人数FROM StudentWHERE (datepart(yea…

小公司的软件开发IT工具箱

目录 工具链困境 难题的解决 达到的效果 资源要求低 工具箱一览 1、代码管理工具 2、自动化发版&#xff08;测试&#xff09;工具 3、依赖库&#xff08;制品包&#xff09;管理 4、镜像管理 5、授权管理&#xff08;可选&#xff09; 待讨论&#xff1a;为什么不是…

基于全志T507-H的Linux-RT实时性测试案例分享

本文将为各位工程师演示全志T507-H工业评估板&#xff08;TLT507-EVM&#xff09;基于IgH EtherCAT控制伺服电机方法&#xff0c;生动说明Linux-RT Igh EtherCAT的强大之处&#xff01; Linux-RT系统的优势 内核开源、免费、功能完善。 RT PREEMPT补丁&#xff0c;使Linux内…

【Qt】对话框

文章目录 1 :peach:对话框介绍:peach:2 :peach:对话框的分类:peach:2.1 :apple:模态对话框:apple:2.2 :apple:非模态对话框:apple:2.3 :apple:混合属性对话框:apple: 3 :peach:Qt 内置对话框:peach:3.1 :apple:消息对话框 QMessageBox:apple: 1 &#x1f351;对话框介绍&#x…

AK F.*ing leetcode 流浪计划之费马小定理与组合数取模

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 费马小定理与证明 参考 https://zhuanlan.zhihu.com/p/594859227 费马小定理&#xff1a;如果p是一个质数&#xff0c;而正整数a不是p的倍数&#xff0c;那么a(p-1)≡…

LabVIEW齿轮调制故障检测系统

LabVIEW齿轮调制故障检测系统 概述 开发了一种基于LabVIEW平台的齿轮调制故障检测系统&#xff0c;实现齿轮在恶劣工作条件下的故障振动信号的实时在线检测。系统利用LabVIEW的强大图形编程能力&#xff0c;结合Hilbert包络解调技术&#xff0c;对齿轮的振动信号进行精确分析…

opensips 3.5的DB部署

opensips 3.X的DB部署方式较之前版本有很大的不同。本文以opensips 3.5 为例&#xff0c;说明部署的过程。 当OpenSIPS安装完成后&#xff0c;需要进一步做什么&#xff1f;最大的可能就是部署配套的DB。因为很多功能离不开它&#xff0c;比如用户鉴权、注册信息持久化、dialog…