WEB开发中,输入框被弹起的虚拟键盘遮挡住了?

这是一个很诡异的问题。
我的iPhone4SiPad Air未出现被虚拟键盘遮挡的问题。
同事的iPhone4iPad三星iPhone5S会出现被虚拟键盘遮挡的问题。

我想这个情况应该由操作系统来处理的,当输入组件focus后,虚拟键盘弹起并把网页向上推一定距离(或者调整输入组件在合适的位置)。是这样的吗?

另外,遇到输入框被虚拟键盘遮挡的问题该如何解决呢?

阅读 39.8k
6 个回答

应该是 body 的高度为 100% 导致的。

jsif (isAndroid) {
    var windowHeight = document.documentElement.clientHeight;
    document.body.style.height = windowHeight + 'px';
}

可能会引起其它一些副作用,我也正在着手解决这个问题。

focus时让页面滚上去,让输入框露出来呗。。

在高度的布局上写死,overflow:scroll

新手上路,请多包涵

if (/Android/gi.test(navigator.userAgent)) {

        console.log('01');
        window.addEventListener('resize', function () {
          console.log('02');
          if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
            window.setTimeout(function () {
              console.log('03');

              document.activeElement.scrollIntoViewIfNeeded();
            }, 0);
          }
        })
      }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题