苹果系统H5页面软键盘弹出造成点击事件失效

苹果系统H5页面软键盘弹出造成点击事件失效

问题描述:苹果系统,软键盘弹出,键盘再收起时,原虚拟键盘位点击事件无效。

排查过程:只有iphonex、iphone6,ihpone7等部分机型会出现该问题;

原因:在IOS下,点击页面中的input时,弹出软键盘时,如果input比较靠下,整个页面会上移,document.body.scrollOffset会由0变成大于0。 软键盘消失后,页面会下移。但是document.body.scrollOffset并不会变成0,所以这时候触控不准;

$('textarea,input').on('blur', function (event) {
           document.body.scrollTop = 0;
   });
 
或者<br>$("input").blur(function() {
console.log("失去焦点");
window.scrollTo(0, 0);
});

==新的处理办法
//ios 软键盘处理,页面错位恢复问题

	var isReset = true;
    var u = navigator.userAgent;
    var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    function scrollTO() {
        //软键盘收起的事件处理
        isReset = true;
        setTimeout(function () {
            //当焦点在弹出层的输入框之间切换时先不归位
            if (isReset) {
                window.scrollTo(0, 0);//失焦后强制让页面归位
            }
        }, 300);
    }
 	if (isiOS) {//ios
      document.body.addEventListener('focusin', function () {
      //软键盘弹出的事件处理
       isReset = false;
    });
   	 document.body.addEventListener('focusout', scrollTO);
	}
 
	 document.body.removeEventListener('focusout', scrollTO);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值