解决 iOS 端输入框聚焦时页面上移问题

310 阅读1分钟

一、前言

iOS Safari 浏览器中,输入框(input/textarea)聚焦时,页面常会莫名上移且失焦后不回落,影响用户体验。通过监听输入框焦点事件,可强制页面回正

二、代码注释详解

// 解决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);
  });
});