微信小程序textarea穿透问题

       微信小程序输入大段文字,需要使用textarea组件,但是原生组件层级最高,导致有弹窗等组件时候,点击弹窗的界面,会出现textarea拿到点击事件,显示光标。

       1.微信官方网站推荐,使用cover-view组件包含button,当时如果有text等组件,则编译会提示异常,cover-view只支持几种控件。在模拟器上面,已经可以实现不被textarea控件拿到,但是到真机预览,还是不行,需要加上z-index为级别最高。

.cover{
  z-index: 999;
}

2.因为我是做聊天页面时候,出现这个问题,聊天界面弹窗其他选择窗口时候,没法每个都注意哪个控件会滑动textarea上面点击,所以想到一个折中方法,就是有弹窗出现时候,把textarea设置为hidden:true,弹窗关闭时候,设置为hidden:false,

 <textarea id="textmsg" hidden="{{textareaHidden}}" class="chat-input" auto-height="{{inputAutoH}}" style="height:{{inputHeight}}rpx" bindlinechange="bindInputChange" bindinput="bindInput" value="{{inputMsg}}" contenteditable="true" maxlength="140" cursor-spacing="10"></textarea>

然后弹窗设置监听函数,监听关闭事件,

component.closeCallback({
      close: (res) => {
        that.setData({
          textareaHidden: res
        })
      }
    })

组件里面,点击关闭事件实现监听函数

    var closeCallback = null

    /**
     * 设置关闭按钮监听
     */
    closeCallback(data) {
      closeCallback = data
    },
/**
* 关闭按钮
*/
onCloseClick: function() {
  console.log("closeCallback=" + closeCallback)
  this.setData({
    visible: false
  })
  if (closeCallback) {
    closeCallback.close(false)
  }
}
发布了3 篇原创文章 · 获赞 0 · 访问量 113

猜你喜欢

转载自blog.csdn.net/lixiangping110/article/details/104618952
今日推荐