前段时间写了个需要使用输入框的网站,该网站在安卓手机上表现正常,但是部分IOS会出现点击输入框再点别的地方使输入框失去焦点之后,因为输入法出现压缩的页面并没有拉伸回原来的样子。
在查阅一些东西之后发现可以用以下代码解决问题
// 输入法输入后页面不回弹问题解决方法
const changeBlur = () => {
let u = navigator.userAgent,
app = navigator.appVersion;
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
if (isIOS) {
setTimeout(() => {
const scrollHeight =
document.documentElement.scrollTop || document.body.scrollTop || 0;
window.scrollTo(0, Math.max(scrollHeight - 1, 0));
}, 100);
}
};
// 在所有需要的输入框上加入此事件
<input @blur.prevent="changeBlur"/>
文章描述了一个在iOS设备上遇到的网页交互问题,即在输入框失去焦点后,由于输入法弹出导致的页面压缩未能恢复。作者提供了一个JavaScript解决方案,通过检测用户代理并设置定时器调整页面滚动位置来修复这个问题。这个方法可以在需要的输入框上添加‘blur’事件来应用。

被折叠的 条评论
为什么被折叠?



