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

本文描述了在苹果系统中,H5页面软键盘弹出时可能导致点击事件失效的问题,尤其是在iPhoneX、6和7等部分型号上。文章提供了两种处理方法,包括使用`blur`事件清空滚动位置和针对iOS终端的事件监听器来确保页面在软键盘收起时正确定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

苹果系统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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值