有的微信小程序开发者在做小程序时,,,,,,使用到了 textarea这个小程序组件,,,,,,然后点击页面上的某个元素,,,,,,会触发页面弹起一个弹窗,,,,,,这时发明 textarea的 placeholder文字或者输入的文字内容,,,,,,会直接穿透遮罩层和浮转动窗,,,,,,显示在最上面。。。。。。

那么这种情形要怎么解决??????
小程序 textarea组件层级过高导致文字穿透浮层的解决要领 :
这是最简朴的解决手段,,,,,,一般弹窗的时间,,,,,,都会带个遮罩层,,,,,,把遮罩层下面的内容隐藏一部分,,,,,,用户基本上不会注重的,,,,,,然后再去掉弹窗和遮罩层的时间再把 textarea显示出来。。。。。。 这种要领简朴有用,,,,,,大部分情形下都可以这么解决。。。。。。
<textarea wx:if="{{ showMask }}">textarea>

有时间,,,,,, textarea穿透的不是遮罩层,,,,,,或者遮罩层以一种半透明而非完全遮住页面内容的形式泛起,,,,,,担心用户能够看到由于 textarea的消逝而导致页面跳动,,,,,,爆发欠好的用户体验,,,,,,那么就可以使用替换元向来替换 textarea而非将之直接隐藏掉。。。。。。
基本的 textarea组件只接受文本的输入,,,,,,抛开可输入性的话,,,,,,外观上看就是一个含有文本节点的简朴元素,,,,,,只需要获取目今状态下的 textarea中输入的文字,,,,,,将之赋予给一个样式与 textarea相同的通俗元素,,,,,,就抵达了暂时替换的效果。。。。。。
<textarea id="text-area" value="{{txtRealContent}}" bindinput='txtInput' wx:if="{{!showMask}}" />
<view class='rich-text' style="{{('height:' + txtHeight + 'px')}}" wx:else>
<rich-text nodes="{{txtRealContent}}">rich-text>
view>
复制代码
如上所示
上面四个方法,,,,,,都较量简朴,,,,,,稍微需要注重的是,,,,,,若是 textarea的内容包括了换行文本,,,,,,则需要对调行符举行处理:
textareaContent.replace(/\n/g, ' ') 复制代码
若是你想让 textarea自动增添高度而不是牢靠高度,,,,,,给 textarea加了个 auto-height,,,,,,那么就需要“实时”获取其高度 说是 “实时”,,,,,,着实也并不是那么实时,,,,,,不思量其他样式的转变,,,,,, textarea的高度与行数有关,,,,,,每增减一行,,,,,,其高度才会转变,,,,,,以是只需要监控其内容行数的转变即可,,,,,,恰恰 textarea组件也已经提供了这个监控器:bindlinechange。。。。。。
原理说完了,,,,,,完整实例代码如下:
index.wxml
<view class="page-body">
<button bindtap="changeMaskVisible">切换maskbutton>
<view class="textarea-wrp">
<textarea id="text-area" value="{{txtContent}}" bindinput='txtInput' bindlinechange="textAreaLineChange" wx:if="{{!showMask}}" auto-height />
<view class='rich-text' style="{{('height:' + txtHeight + 'px')}}" wx:else>
<rich-text nodes="{{txtRealContent}}">rich-text>
view>
view>
<button>Footerbutton>
<view wx:if="{{showMask}}" bindtap="changeMaskVisible" class="mask">
<view class="mask-content">view>
view>
view>
复制代码
index.js
Page({
data: {
txtRealContent: '',
txtContent: '',
showMask: false,
txtHeight: 0
},
textAreaLineChange(e) {
this.setData({ txtHeight: e.detail.height })
},
txtInput(e) {
this.setData({ txtContent: e.detail.value })
},
changeMaskVisible(e) {
if (!this.data.showMask) {
// 将换行符转换为wxml可识别的换行元素
const txtRealContent = this.data.txtContent.replace(/\n/g, '
')
this.setData({ txtRealContent })
}
this.setData({ showMask: !this.data.showMask })
}
})
复制代码
index.wxss
.rich-text {
overflow: hidden;
}
.mask {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0, 0, 0, .6);
z-index: 10;
}
.mask-content {
position: fixed;
top: 44%;
left: 50%;
height: 60%;
width: 60%;
transform: translate(-50%, -50%);
background-color: yellowgreen;
z-index: 12;
}
以上就是小程序 textarea组件层级过高导致文字穿透浮层的解决要领,,,,,,更多小程序开发文档可以关注网站。。。。。。
小程序工具提供多类型商城/门店小程序制作,,,,,,可视化编辑 1秒天生5步上线。。。。。。通过拖拽、拼接??????榻峁剐〕绦蛏坛且趁,,,,,,所看即所得,,,,,,只需要美工就能做出细腻商城。。。。。。更多小程序请审查:小程序市肆
KESION pp电子软件
KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。。。。KESION 一直通过手艺立异,,,,,,提供产品和服务,,,,,,助力企业向数字化转型,,,,,,通过科技驱动商业刷新,,,,,,让商业变得更智慧!
当用户进入微信小程序登陆时,,,,,,会泛起一个登录界面,,,,,,好比获取用户用户头像和昵称等,,,,,,这些在微信小程序开发者而言,,,,,,是可以获取用户数据的,,,,,,下面就为各人介绍小程序种种姿势实现登录的方...
微信宣布插件可供使用者共享,,,,,,意思是说,,,,,,小程序开发商可引入开发过的小程序插件,,,,,,来建设小程序,,,,,,并且可以重复使用,,,,,,下面就为各人介绍微信小程序引入插件的方法。。。。。。...