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


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

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

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

    1. <script setup lang="ts">
    2. import { ref } from 'vue';
    3. const tabIndex = ref(0);
    4. const change = function (index) {
    5. tabIndex.value = index
    6. console.log("调用父组件的tab切换", index);
    7. if (index == 0) {
    8. uni.switchTab({
    9. url: '/pages/home/index'
    10. })
    11. } else if (index == 1) {
    12. uni.switchTab({
    13. url: '/pages/my/index'
    14. })
    15. }
    16. };
    17. // 点击中间凸出来的tab
    18. const tabMiddle = function () {
    19. console.log("点击中间的tab");
    20. }
    21. script>
    22. <style lang="scss">
    23. .tabars {
    24. width: 90rpx;
    25. height: 70rpx;
    26. display: flex;
    27. flex-direction: column;
    28. align-content: center;
    29. position: relative;
    30. bottom: 50rpx;
    31. border-radius: 50%;
    32. background-color: #fff;
    33. border-top: 2px solid #dadbde;
    34. padding: 30rpx;
    35. .item {
    36. width: 100%;
    37. height: 100%;
    38. display: flex;
    39. justify-content: center;
    40. .img {
    41. width: 80%;
    42. }
    43. }
    44. }
    45. style>

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

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

    然后还需要在相应的主页面中引入这个组件:

    并且修改一下App.vue文件内容,在启动和显示的时候,隐藏自带的tabbar:

    1. <style lang="scss">
    2. @import "uview-plus/index.scss";
    3. style>

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

  • 相关阅读:
    java毕业设计“传情旧物”网站mybatis+源码+调试部署+系统+数据库+lw
    Android Camera性能分析 - 第26讲 DequeueBuffer Latency
    全图化在线系统设计
    网络安全(黑客)自学
    通过API接口实现数据实时更新的方案(InsCode AI 创作助手)
    【岛屿问题】递归
    Three.js一起学-对比WebGL和Three.js的渲染流程
    光学动作捕捉系统构成
    VL53L0X V2激光测距传感器 采集距离数据串口输出
    第五章 虚拟存储器 练习
  • 原文地址:https://blog.csdn.net/weixin_44786530/article/details/134250720