修复IOS上滑动HTML界面光标乱跳

最近测试人员在测试公司开发的IOS应用时候,IOS是使用混合模式开发,当HTML界面有输入框的时候,点击输入后,滑动界面,光标会固定在屏幕上,不会随着HTML标签滚动;会出现错位,截图如下:

网上说,是因为使用了fixed定位的原因,关键是我所有css样式中都没有使用fixed定位;所以,只能通过其他路径解决问题;

多次测试发现,在我们手指移动到combox,等不能聚焦的标签上,键盘会消失,光标自然就不在了,而且不影响滑动;尝试一下,修改代码添加事件:

   document.body.addEventListener('touchstart', function (e) {
        if(document.activeElement)
            document.activeElement.blur();
    }, {passive: false});

测试,光标确实在滑动时不见了,但是每次我点击其它可输入的标签时,光标都会隐藏,键盘收起;这不是想要的效果,因为这样虽然解决了样式的问题,但是会给用户照成使用不便的问题;然后修改事件toushstart->touchmove:

   document.body.addEventListener('touchmove', function (e) {
        if(document.activeElement)
            document.activeElement.blur();
    }, {passive: false});

测试,滑动时光标不会出现错位,而是直接隐藏;点击其它输入框时,光标直接定位到输入框,键盘也不会收起;问题解决,唯一有一点小瑕疵,点击其它输入框时,光标响应速度有点慢,在考虑是否需要加入FastClick这个Js库,如果加入的话,下一篇文章会说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值