相信作过微信小程序开发的人应该都碰到过这个问题,由于这个需求实在太常见了
因为textarea是属于原生组件,层级最高,无论在页面中咱们设置z-index值多少都会被textarea组件遮挡住,很影响用户体验,html
目前官方对该问题尚未修复,固然官方也给出了解决该问题的其余方案,使用cover-view和 cover-image替代,但我的感受并非很好,有一些限制小程序
一、弹窗显示
二、底部fixed定位的按钮,页面滚动时,例如添加购物车,显示价格微信小程序
针对以上两种业务场景解决方式不一样微信
在显示弹窗时经过if或者绑定class属性将textarea组件隐藏,弹窗关闭时显示,以下app
<div class="section" :class="isShowInput?'':'hidden'"> <textarea class="content" placeholder="输入内容" v-model="userInfo"></textarea> </div>
咱们在输入时使用textarea组件,不输入的时候text来显示文字和placeholder,这样咱们须要单独设置几个标签this
<textarea>输入内容</textarea> <scroll-view>用于显示文本内容</scroll-view> <div class="placeholder" v-if="!content">说说对这个活动见解吧</div>
经过v-show来显示或隐藏该组件,使用scroll-view标签为文本内容设置可滚动,这里设置了isFocus聚焦,经过按钮的形式去触发textaare的Focus.net
完整代码以下:code
<textarea v-model="content" @blur="bindContentBlur" v-show="isInputContentFocus" placeholder="说说对这个活动见解吧" v-bind:focus="isFocus" ></textarea> <scroll-view scroll-y class="content" v-text="content" @click="bindContentFocus" v-show="isContentFocus" > <div class="placeholder" v-if="!content">说说对这个活动见解吧</div> </scroll-view> data() { return { isContentFocus: true, isInputContentFocus: false, isFocus: false }; }, methods: { bindContentFocus(e) { this.isFocus = true; //触发焦点 this.isContentFocus = false; //聚焦时隐藏内容文本标签 this.isInputContentFocus = true; console.log("Focus isFocus", this.isFocus); }, bindContentBlur(e) { this.isContentFocus = true; //聚焦时隐藏内容文本标签 this.isInputContentFocus = false; this.isFocus = false; //失去焦点 console.log("Blur isFocus", this.isFocus); } }
官方给出了针对textarea的解决方式,使用cover-view和 cover-image替代,这两个组件也是原生组件,能够覆盖textarea组件component
cover-imagehtm
<cover-view class="btn-save"> <button class="btn btn-love btn-apply" @click="apply" :disabled="apply_status" v-text="apply_status?'我已报名':'我要报名'" ></button> </cover-view>
不过这里有个限制就是<cover-view/> 内只能嵌套 <cover-view/> <cover-image/> <button/> <navigator/>
组件,view 标签的子节点树在真机上都会被忽略。
像上面场景2的需求,添加购物车,显示价格,很明显这种方式并不适用,固然若是底部咱们只有一个button的话是可使用这种方式去解决的
https://blog.csdn.net/huobox/article/details/84859712 https://1c7.me/2018-10-30-wechat-mini-program-textarea-z-index-problem/