一、前言
iOS Safari 浏览器中,输入框(input/textarea)聚焦时,页面常会莫名上移且失焦后不回落,影响用户体验。通过监听输入框焦点事件,可强制页面回正。
二、代码注释详解
javascript
// 解决iOS输入框聚焦后页面上移问题
const inputs = document.querySelectorAll("input, textarea");
inputs.forEach((input) => {
// 失焦时强制页面滚动到顶部(或指定位置)
input.addEventListener("blur", () => {
window.scrollTo({
top: 0,
left: 0,
behavior: "smooth", // 平滑滚动,可选
});
});
// 聚焦时也可微调位置(根据需求可选)
input.addEventListener("focus", () => {
setTimeout(() => {
input.scrollIntoViewIfNeeded(false); // false表示不居中,避免页面偏移
}, 100);
});
});