javascript – 在移动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/.

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

它能做什么:

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

这是一个已知的问题吗?它有解决方法吗?

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

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

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

http://www.quirksmode.org/dom/events/resize_mobile.html在完全支持下查看扩展键盘时调整大小的键盘.

点赞