这是在 开发者工具上展示的,自定义的弹出框可以覆盖textarea文本
下面是手机上显示的,textarea文本漂浮在自定义的弹出框上,点击有文本的地方,弹出软键盘
下面是文本的代码
< view class = "weui-cells__title" >您的留言</ view > < view class = "weui-cells weui-cells_after-title" > < view class = "weui-cell" > < view class = "weui-cell__bd" style = "z-index: 100" > < textarea placeholder = "请输入您的留言" style = "height: 5em;" value = "{{ qrNote }}" bindinput = "qrNoteBindinput" /> </ view > </ view > </ view > |
下面是自定义弹出框的代码
<!-- 自定义软键盘 --> <!-- 遮罩层 --> < view class = "drawer_screen" bindtap = "powerDrawer" data-statu = "close" wx:if = "{{ showModalStatus }}" ></ view > <!-- 弹出框 --> < view animation = "{{ animationData }}" class = "drawer_box" wx:if = "{{ showModalStatus }}" > < view class = "numberBody" > < label wx:for = "{{ numbers }}" class = "numberBox" bindtap = "selectNumber" data-number = "{{ item }}" > {{ item }} </ label > </ view > < view class = "letterBody" > < label wx:for = "{{ Letters }}" class = "letterBox" bindtap = "selectLetter" data-letter = "{{ item }}" > {{ item }} </ label > </ view > </ view > |
下面是弹出框的js代码
powerDrawer: function (e) { console.log(e) let currentStatu = e.currentTarget.dataset.statu this .util(currentStatu) }, util: function (currentStatu) { /* 动画部分 */ // 创建动画实例 let animation = wx.createAnimation({ duration: 200, timingFunction: 'linear' , delay: 0 }) this .animation = animation animation.opacity(0).rotate(0).step() this .setData({ animationData: animation.export() }) setTimeout(() => { animation.opacity(1).rotateX(0).step() this .setData({ animationData: animation }) if (currentStatu == 'close' ) { this .setData({ showModalStatus: false }) } }, 200) if (currentStatu == 'open' ) { this .setData({ showModalStatus: true }) } }, |
下面是css样式代码
.drawer_screen { width : 100% ; height : 100% ; position : fixed ; top : 0 ; left : 0 ; z-index : 1000 ; background : #fff ; opacity: 0 ; overflow : hidden ; } .drawer_box { width : 100% ; overflow : hidden ; position : fixed ; bottom : 0px ; left : 0 ; z-index : 9999 ; background : #999 ; } .numberBody { margin : 0px 0px ; text-align : center ; } .numberBox { background-color : #fff ; display : inline- block ; border-radius: 2px ; width : 7.5% ; color : #000 ; padding : 5px 0px ; margin : 0px 4px ; margin-top : 12px ; text-align : center ; font-size : 34 rpx; } .letterBody { margin : 0px 0px ; text-align : center ; padding-bottom : 25 rpx; } .letterBox { background-color : #fff ; display : inline- block ; border-radius: 2px ; color : #000 ; padding : 5px 2.8% ; margin : 0px 1.2% ; margin-top : 12px ; text-align : center ; font-size : 32 rpx; } |
可能有表达不清楚的地方请指出。
我遇到的问题是,textarea直接影响我的弹出视图的点击事件了(父视图)会优先聚焦。。。。不知道楼楼主有遇到过没有
官方说是底层的东西 也不好解决。只能我们在应用层解决。。。。。
可覆盖的原生组件包括
map
、video
、canvas
、camera
,只支持嵌套cover-view cover-view不行
弹出框用cover-view试试吧
好吧,我目前的解决方法是 当弹出框显示的时候,就隐藏textarea,您说的这个 等以后有空 在试下,谢啦!
对呀 小明同学 ,不过我没试过
您说用cover-view,是指弹出框用cover-view来实现?
tip
:textarea
组件是由客户端创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。试试 cover-view 吧