当前位置: 首页 > news >正文

uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果

要实现自定义的tabbar效果,可以使用自定义tab覆盖主tab来实现,当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件,然后在里面实现自定义的逻辑。

组件中所使用的组件api可以看:Tabbar 底部导航栏 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架

先在components/tabbar/里面实现组件逻辑:

<template><u-tabbar :value="tabIndex" @change="change" :fixed="true" :placeholder="true" :safeAreaInsetBottom="true"><u-tabbar-item text="首页" icon="home"></u-tabbar-item><view class="tabars" @click="tabMiddle"><view class="item"><image class="img" src="../../static/images/gongshang.png" mode="widthFix"></image></view></view><u-tabbar-item text="我的" icon="account"></u-tabbar-item></u-tabbar>
</template><script setup lang="ts">
import { ref } from 'vue';const tabIndex = ref(0);const change = function (index) {tabIndex.value = indexconsole.log("调用父组件的tab切换", index);if (index == 0) {uni.switchTab({url: '/pages/home/index'})} else if (index == 1) {uni.switchTab({url: '/pages/my/index'})}
};// 点击中间凸出来的tab
const tabMiddle = function () {console.log("点击中间的tab");
}</script><style lang="scss">
.tabars {width: 90rpx;height: 70rpx;display: flex;flex-direction: column;align-content: center;position: relative;bottom: 50rpx;border-radius: 50%;background-color: #fff;border-top: 2px solid #dadbde;padding: 30rpx;.item {width: 100%;height: 100%;display: flex;justify-content: center;.img {width: 80%;}}
}
</style>

组件里面实现tab切换的api里面使用规范:uni.navigateTo(OBJECT) | uni-app官网

注意看使用switchTab的时候,url的前面要有/,然而pages.json里面的是不需要的。

 

然后只需要在tab的主页面中引入这个组件即可:

然后重新打开即可看到效果:

http://www.lryc.cn/news/222656.html

相关文章:

  • 麒麟信安获批牵头成立国家关键领域信创行业产教融合共同体
  • 好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。
  • 手动修复 rabbitmq 报错 “Crash dump is being written to“
  • 日志门面技术
  • 机器人制作开源方案 | 管内检测维护机器人
  • k8s存储卷
  • View 自定义 - 属性 xml
  • 2007-2022年全国各地级市金融机构网点数据
  • OpenAI开发者大会掀起风暴:GPT模型价格狂降50%,应用商店即将亮相,AI技术将引爆全球!
  • yo!这里是STL::unordered系列简单模拟实现
  • 基础课25——业务流程分析
  • 快速实现一个企业级域名 SSL 证书有效期监控巡检系统
  • [SSD综述 1.5] SSD 主控和固件核心功能详解(万字)
  • Mybatis-Plus前后端分离多表联查模糊查询分页
  • 【Ruoyi管理后台】用户登录强制修改密码
  • 计算机网络基础知识1
  • 人机交互中的多/变尺度态势感知
  • 命名管道原理(和匿名管道的对比),mkfifo(命令行,函数),命名管道模拟实现代码+与多个子进程通信代码
  • pytest全局变量的使用
  • FreeRTOS源码阅读笔记2--list.c
  • 杂货铺 | citespace的使用
  • C++ 静态成员变量初始化规则
  • Docker安装、卸载,以及各种操作
  • 深入理解 C 语言的内存管理
  • 利用Caddy实现http反向代理
  • 【Qt之QVariant】使用
  • xv6实验课程--xv6的写时复制fork(2023)
  • 在Windows或Mac上安装并运行LLAMA2
  • Spring底层原理学习笔记--第七讲--(初始化与销毁)
  • 基于斑马算法的无人机航迹规划-附代码