坑1:组件覆盖优先级
在微信小程序中,textarea是原生组件,所以不管z-index设置多大,其他组件都无法覆盖在textarea上面。
解决方法:
- 当需要组件在textarea时候,我们可以在textarea失焦的时候将textarea隐藏起来,然后画一个和他外观一样的view,然后点击view时候,view隐藏起来,显示textarea
坑2:textarea内容键盘遮挡
场景: 在键盘弹起前,textarea长度比较长,当输入内容时,键盘弹起会遮挡部分内容
解决方法
- 在键盘弹起后,计算键盘高度,然后自适应的缩小textarea的高度,
//聚焦内容
focus_mes: function (e) {
var that = this;
var h2 = 980 - e.detail.height * 2;
this.setData({
input_height: "height:" + h2 + "rpx;", //textarea的高度
})
},
- 还可以调整textarea的cursor-spacing属性,控制光标和键盘的间隔距离
坑3:使用textarea后,弹起键盘导致整个页面推上
在textarea中有adjust-position属性,默认为true,效果是键盘弹起时,自动上推页面。
解决方法:
- 在textarea中加入
adjust-position="{{false}}"