在使用iPhone X点击输入框唤起虚拟键盘后,手指点击屏幕的位置发生了偏移:原本能点到的位置,现在需要在原来位置的上面一些才能点到。目前只有iPhone遇到过这种情况,而安卓的全面屏手机是没有发现问题的。
可以采用以下写法解决:
// 依赖jQuery的写法
window.$('body,html').scrollTop(window.$(document).scrollTop());
// 原生实现
setTimeout(() => {
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
// 测试过程中发现下面这一条是不必要的
document.getElementsByTagName('html')[0].scrollTop = scrollTop;
// 测试过程中发现只需要下面这一条即可
document.getElementsByTagName('body')[0].scrollTop = scrollTop;
}, 0);