vue项目苹果ios12系统手机,输入框键盘回弹留下了空白遮罩的处理方式

2 篇文章 0 订阅
2 篇文章 0 订阅

1、问题表现:H5开发,下单页面,下图所示,在ios 12系统的苹果手机端,在输入电话号,之类信息,经常点击去支付没有任何反应,页面上下滑动,再点击,就可以支付
在这里插入图片描述
2、原因分析:结合页面表现,查了网上资料,ios12系统键盘回收后会留下一个透明的遮罩层,在点击页面底部,点击事件没法穿透遮罩层,相当于事件被拦截了。
3、处理方式,项目用的vue开发的,处理思路:在input失去焦点后,页面上下滚动1px,去除遮罩层;该方法作用所有input需要在input用@blur=iosBlur引入

 iosBlur() {
      let ua = window.navigator.userAgent;
      //$alert('浏览器版本: ' + app + '\n' + '用户代理: ' + ua);
      if (!!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
        //ios系统
        let currentPosition, timer;
        let speed = 1;
        timer = setInterval(function () {
          currentPosition =
            document.documentElement.scrollTop || document.body.scrollTop;
          currentPosition -= speed;
          window.scrollTo(0, currentPosition); //页面向上滚动
          currentPosition += speed;
          window.scrollTo(0, currentPosition); //页面向下滚动
          clearInterval(timer);
          // alert("失去焦点")
          console.log("失去焦点")
        }, 100);
      }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Vue的v-show指令来动态控制聊天键盘的显示和隐藏,同使用v-model指令来绑定输入框的值。 首先,在你的模板中添加一个输入框和一个按钮,用于触发键盘的显示和隐藏: ```html <template> <div> <div class="chat-box"> <div class="message-list"> // 这里放置聊天记录的代码 </div> <div class="input-box"> <input type="text" v-model="message" @focus="showKeyboard" @blur="hideKeyboard"/> <button @click="sendMessage">发送</button> </div> </div> <div class="keyboard" v-show="isKeyboardVisible"> // 这里放置键盘的代码 </div> </div> </template> ``` 然后,在你的Vue实例中添加showKeyboard和hideKeyboard方法,用于显示和隐藏聊天键盘: ```javascript export default { data() { return { message: '', isKeyboardVisible: false } }, methods: { showKeyboard() { this.isKeyboardVisible = true }, hideKeyboard() { this.isKeyboardVisible = false }, sendMessage() { // 这里是发送消息的代码 } } } ``` 最后,在你的模板中使用v-show指令来根据isKeyboardVisible变量的值来动态控制聊天键盘的显示和隐藏: ```html <template> <div> <div class="chat-box"> <div class="message-list"> // 这里放置聊天记录的代码 </div> <div class="input-box"> <input type="text" v-model="message" @focus="showKeyboard" @blur="hideKeyboard"/> <button @click="sendMessage">发送</button> </div> </div> <div class="keyboard" v-show="isKeyboardVisible"> // 这里放置键盘的代码 </div> </div> </template> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值