微信小程序textarea層級過高(蓋住其他元素)問題的解決辦法
前言:這篇文章講什么
微信小程序中 textarea 組件的層級過高如何解決
前言:這篇文章對誰有用
微信小程序開發(fā)者
前言:本文有什么用?
提供解決問題的思路,供你參考
(因為時間關(guān)系,我沒法把代碼整理的好好的然后貼出來讓你復(fù)制黏貼。或者是做成一個組件然后開源)
前言:本文時效性
截止至2018年10月30號,微信的 textarea 還是以原生組件形式實現(xiàn),因此層級最高。無法通過 z-index 進行調(diào)整。在微信小程序官方把 textarea 改成了可以控制層級之前。本文中的內(nèi)容會一直有效。
1. 問題描述
根據(jù)官方文檔,textarea 是原生組件 (https://developers.weixin.qq.com/miniprogram/dev/component/textarea.html),所謂原生組件就是 “脫離在 WebView 渲染流程外”
文檔中的原話是:
原生組件的層級是最高的,所以頁面中的其他組件無論設(shè)置 z-index 為多少,都無法蓋在原生組件上。
造成的問題:
在一個可以滾動的頁面中。textarea 中的文字會覆蓋在 position: fixed 的元素上方
經(jīng)典業(yè)務(wù)場景1:
頁面底部有一個固定的操作欄,比如"加入購物車"。"立即購買", 顯示價格等
經(jīng)典業(yè)務(wù)場景2:
頁面中有彈窗
問題截圖
我們先往頁面上放2個 textarea


此時看起來暫時一切正常。
我們把底下的 textarea 輸入一些文字,

然后把頁面向上滾動??梢钥吹轿淖稚w住了底部的操作欄

哪怕我們不輸入任何文字,placeholder 也會直接蓋住操作欄

注意:請在真機中測試。微信開發(fā)者工具中看不到這樣的問題。
針對業(yè)務(wù)場景1(滾動)如何解決?
僅在輸入時使用 textarea, 不輸入時使用 text 來顯示文字。內(nèi)容為空時 placeholder 用 view 來實現(xiàn)。
所以一共3個元素
<view>負責(zé)顯示placeholder</view> <textarea>負責(zé)輸入文字</textarea> <view> <text>負責(zé)顯示文字(用 text 確保換行正常)</text> </view>
當(dāng)輸入為空時,顯示 placeholder,
當(dāng)輸入不為空時,取決于當(dāng)前有沒有 focus 來判斷是顯示 textarea 還是 負責(zé)顯示文字的 view
針對業(yè)務(wù)場景2(彈窗)如何解決?
有彈窗的時候,就用 wx:if 把 textarea 藏起來
本文完
感想:這個破事消耗了我?guī)缀跻粋€下午。同時又對我的技術(shù)沒有任何提升,只是完成業(yè)務(wù)需求而已。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
利用JavaScript做數(shù)獨的完整實現(xiàn)過程
數(shù)獨游戲是在一個9*9的方格中進行填數(shù)字的游戲,需要滿足的規(guī)則是每行每列和每個子九宮格都是1~9的不重復(fù)數(shù)字,下面這篇文章主要給大家介紹了關(guān)于如何利用JavaScript做數(shù)獨的相關(guān)資料,需要的朋友可以參考下2021-09-09
解決頁面整體使用transform scale后高德地圖點位點擊偏移錯位問題
這篇文章主要介紹了解決頁面整體使用transform scale后高德地圖點位點擊偏移錯位問題的方法,具有一定的參考價值,需要的小伙伴可以參考一下2022-01-01
javascript實現(xiàn)的基于金山詞霸網(wǎng)絡(luò)翻譯的代碼
下面的這段代碼是基于金山詞霸網(wǎng)絡(luò)翻譯提供的接口,遠程調(diào)用文件,可以作為一個自定義的在線查詢工具。2010-01-01
利用js實現(xiàn)Ajax并發(fā)請求限制請求數(shù)量的示例代碼
這篇文章主要介紹了利用js實現(xiàn)Ajax并發(fā)請求限制請求數(shù)量的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
通用javascript腳本函數(shù)庫 方便開發(fā)
javascript 在 WEB 編程中能起到很大的作用,將一些常用的功能寫成javascript類庫。2009-10-10

