在移动Chrome上隐藏键盘不会改变窗口高度

时间:2014-04-08 13:32:04

标签: javascript ios google-chrome mobile mobile-chrome

移动Chrome (在我的iOS 7.0.3和Chrome 33.0.1750.21中)打开键盘时,窗口的高度会发生变化。没关系。但是当你隐藏键盘时,窗口不会改变其高度

我做了一个简单的演示,它在调整窗口高度时调整窗口高度:

$(window).on('resize', function () {
    $('#heights').prepend($(window).height() + '<br />');
}).resize();

您可以在此处试用:http://jsfiddle.net/orthes/QkFCZ/

只需点击输入即可打开键盘,然后隐藏它。

它的作用:

  1. 默认高度是正确的(在我的情况下在iPad mini - 836px上)
  2. 当我打开键盘时,窗口高度更改为538px - 这仍然是正确的
  3. 当我关闭键盘时,调整大小事件甚至没有被触发 - 这里是问题开始的地方
  4. 当我点击一个链接手动获取当前窗口高度时,它会写入538px(事件虽然它应该回到836px)
  5. 这是一个已知问题吗?它有解决方法吗?

    当我想使用高度为100%的固定定位元素时,它会影响我。在负载上,高度是正确的,但是当我打开并隐藏键盘时,元素的高度不会调整回100%。

1 个答案:

答案 0 :(得分:2)

我很确定它是Chrome /操作系统组合中的一个错误。因此,要解决此问题,您可能需要考虑更改页面的布局CSS。

要查看有关resize事件支持的更多信息,请参阅此处:

http://www.quirksmode.org/dom/events/resize_mobile.html完全支持键盘,以便在扩展键盘时调整大小。

相关问题