前段时间写了个需要使用输入框的网站,该网站在安卓手机上表现正常,但是部分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"/>