微信小程序tabBar自定義彈窗遮擋不住解決技巧
背景
最近開發(fā)微信小程序發(fā)現(xiàn)一個問題,就是微信小程序官方自帶的tabbar層級很高,自定義modal蓋不住tabbar的問題;翻閱官方的社區(qū),很多同學說 設置z-index:99999;可以解決這個問題,我實踐下來是有問題的;ios是解決不了問題;經過反復實踐有兩種方法可以解決問題;
方法一:自定義tabbar
這個方法就是完全放棄微信官方的tabbar;自己用SPA的方式去實現(xiàn)一個tabbar; 這個方法的優(yōu)點:
- tabbar能自己定制化;順手也解決了蓋不住的問題;
缺點在于: - 要自己實現(xiàn)微信官方的實現(xiàn)的功能比如wx.switchTab等基礎功能
- 需要自己實現(xiàn)路由管理
- 需要比較大測試成本
整體實現(xiàn)成本還是比較大的,具體實現(xiàn)方法這里不做演示,感興趣的可以自行找相關的文章;社區(qū)有許多這個文章。
方法二:套用原生提供的tabbar自定義功能,嵌套自己的tabbar組件
具體實現(xiàn)方法如下:
第一步:開啟原生的自定義tabbar功能:
// app.json加入以下代碼 "tabBar": { "custom": true, "list": [ { "pagePath": "pages/index/index", "text": "首頁" }, { "pagePath": "pages/account/index", "text": "我的" } ] },
第二步:在根目錄創(chuàng)建空的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 }
第三步:創(chuàng)建件自己的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" } }
解決問題方法大致思路就是這些,
方法的優(yōu)點是:能比較快速的解決遮擋不住的問題;且支持原生小程序tabbar的大部分功能 方法的缺點是:
- page 生命周期 onTabItemTap 不可以觸發(fā),需要自己實現(xiàn)
- Icon 第一次切換會閃一下
總結
方法二相比方法一來說;實現(xiàn)成本低的多,適合時間緊任務重的時候作為臨時的解決方案,但是,總體來說還是比較hack的一種方式,如果有時間的話可以自己實現(xiàn)tabbar為上上策;順便吐槽一下,為啥官方社區(qū)都是說用z-index解決,可是明顯不行啊
成果
以上就是微信小程序tabBar自定義彈窗擋不住解決技巧的詳細內容,更多關于微信小程序tabBar彈窗的資料請關注腳本之家其它相關文章!
相關文章
JavaScript canvas實現(xiàn)俄羅斯方塊游戲
這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)俄羅斯方塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07基于JS實現(xiàn)9種不同的面包屑和分布式多步驟導航效果
本文是小編給大家分享的基于js實現(xiàn)的9種不同風格的面包屑和分布式多步驟導航效果,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-02-02小程序自定義tabbar導航欄及動態(tài)控制tabbar功能實現(xiàn)方法(uniapp)
在項目中遇到一個需求,根據不同的賬號,生成不同的tabBar,下面這篇文章主要給大家介紹了關于小程序自定義tabbar導航欄及動態(tài)控制tabbar功能實現(xiàn)方法(uniapp)的相關資料,需要的朋友可以參考下2022-12-12