微信小程序tabBar自定义弹窗遮挡不住解决技巧

 更新时间:2022年11月30日 15:17:37   作者:就是那个小明  
这篇文章主要为大家介绍了微信小程序tabBar自定义弹窗遮挡不住解决技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

背景

最近开发微信小程序发现一个问题,就是微信小程序官方自带的tabbar层级很高,自定义modal盖不住tabbar的问题;翻阅官方的社区,很多同学说 设置z-index:99999;可以解决这个问题,我实践下来是有问题的;ios是解决不了问题;经过反复实践有两种方法可以解决问题;

方法一:自定义tabbar

这个方法就是完全放弃微信官方的tabbar;自己用SPA的方式去实现一个tabbar; 这个方法的优点:

  • tabbar能自己定制化;顺手也解决了盖不住的问题;
    缺点在于:
  • 要自己实现微信官方的实现的功能比如wx.switchTab等基础功能
  • 需要自己实现路由管理
  • 需要比较大测试成本
    整体实现成本还是比较大的,具体实现方法这里不做演示,感兴趣的可以自行找相关的文章;社区有许多这个文章。

方法二:套用原生提供的tabbar自定义功能,嵌套自己的tabbar组件

具体实现方法如下:
第一步:开启原生的自定义tabbar功能:

// app.json加入以下代码
  "tabBar": {
    "custom": true,
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/account/index",
        "text": "我的"
      }
    ]
  },

第二步:在根目录创建空的tabbar

// custom-tab-bar/index.js
// custom-tab-bar/index.json
// custom-tab-bar/index.wxml
// custom-tab-bar/index.wxss
// index.wxml
  <view></view>
// index.js
  Component({});
// index.json
    {
      "component": true
    }

第三步:创建件自己的tabbar组件

// wxml
<view class="tab-bar__block"></view>
<view class="tab-bar">
  <view class="tab-bar__item {{ index == selected ? 'tab-bar__active' : '' }}" wx:for="{{list}}" wx:key="index" bind:tap="handleClick" data-index="{{ index }}" data-path="{{ item.pagePath }}">
    <icon icon="{{ index == selected ? item.currentIcon : item.icon }}" size="28px" />
    <view class="tab-bar__text">{{ item.text }}</view>
  </view>
</view>
// js
  methods: {
    /**
     * 点击tab 切换
     * @param e event
     */
    handleClick(e: WechatMiniprogram.CustomEvent) {
      const { path, index } = e.currentTarget.dataset;
      const { list } = this.data;
      wx.switchTab({
        url: path,
      });
  },

第四步:使用页面正常使用自己的tabbar组件

// wxml
<tab-bar selected="{{0}}" />
// json
{
  "usingComponents": {
    "tab-bar": "../../components/business/tab-bar"
  }
}

解决问题方法大致思路就是这些,
方法的优点是:能比较快速的解决遮挡不住的问题;且支持原生小程序tabbar的大部分功能 方法的缺点是:

  • page 生命周期 onTabItemTap 不可以触发,需要自己实现
  • Icon 第一次切换会闪一下

总结

方法二相比方法一来说;实现成本低的多,适合时间紧任务重的时候作为临时的解决方案,但是,总体来说还是比较hack的一种方式,如果有时间的话可以自己实现tabbar为上上策;顺便吐槽一下,为啥官方社区都是说用z-index解决,可是明显不行啊

成果

以上就是微信小程序tabBar自定义弹窗挡不住解决技巧的详细内容,更多关于微信小程序tabBar弹窗的资料请关注脚本之家其它相关文章!

相关文章

  • 微信小程序项目总结之记账小程序功能的实现(包括后端)

    微信小程序项目总结之记账小程序功能的实现(包括后端)

    这篇文章主要介绍了微信小程序项目总结之记账小程序功能的实现方法(包括后端),需要的朋友可以参考下
    2019-08-08
  • JS注册/移除事件处理程序(ExtJS应用程序设计实战)

    JS注册/移除事件处理程序(ExtJS应用程序设计实战)

    最常做的事情就是注册事件处理程序,因为在ExtJS的世界里,几乎完全由时间组成,下面是处理程序案例,感兴趣的朋友可以参考下哈,希望可以帮助到你
    2013-05-05
  • JS截取字符串的方法详解

    JS截取字符串的方法详解

    本文详细讲解了JS截取字符串的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • php对mongodb的扩展(小试牛刀)

    php对mongodb的扩展(小试牛刀)

    本文主要讲解php连接、操作mongodb,有需求的朋友可以参考下
    2012-11-11
  • Postman环境变量全局变量使用方法详解

    Postman环境变量全局变量使用方法详解

    这篇文章主要介绍了Postman环境变量全局变量使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 分享JavaScript监听全部Ajax请求事件的方法

    分享JavaScript监听全部Ajax请求事件的方法

    最近在做一个小项目,引入了第三方js文件,这个文件会调用XMLHttpRequest向服务器发送 Ajax请求,但是我有需要监听其Ajax请求的某些事件,以便额外地执行其他脚本。于是稍微看了看监听 Ajax请求的事件方法,在这里分享给大家。有需要的朋友们可以参考借鉴。
    2016-08-08
  • JS正则表达式修饰符global(/g)用法分析

    JS正则表达式修饰符global(/g)用法分析

    这篇文章主要介绍了JS正则表达式修饰符global(/g)用法,结合实例形式分析了JS全局匹配修饰符/g的功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-12-12
  • JS中位置与大小的获取方法

    JS中位置与大小的获取方法

    下面小编就为大家带来一篇JS中位置与大小的获取方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 基于JS实现经典的井字棋游戏

    基于JS实现经典的井字棋游戏

    井字棋作为我们在上学时代必玩的一款连珠游戏,承载了很多人的童年记忆。本文我们就用HTML、css、js来实现一款井字棋游戏,感兴趣的可以动手尝试一下
    2022-04-04
  • 原生js编写设为首页兼容ie、火狐和谷歌

    原生js编写设为首页兼容ie、火狐和谷歌

    这篇文章主要介绍了如何通过原生js实现设为首页并兼容ie、火狐和谷歌,需要的朋友可以参考下
    2014-06-06

最新评论