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

Posted

技术标签:

【中文标题】在移动 Chrome 上隐藏键盘不会改变窗口高度【英文标题】:Hiding keyboard on mobile Chrome doesn't change window height 【发布时间】:2014-04-08 13:32:04 【问题描述】:

当您在移动 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%。

【问题讨论】:

当我在 CrossBrowserTesting 模拟器中尝试 iOS Chrome 41 上的小提琴时,当我点击输入框时页面会放大,并且永远不会缩小。 【参考方案1】:

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

要查看有关支持调整大小事件的更多信息,您可以在此处阅读:

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

【讨论】:

以上是关于在移动 Chrome 上隐藏键盘不会改变窗口高度的主要内容,如果未能解决你的问题,请参考以下文章

移动端软件盘遮挡输入框问题

如何使用 SwiftUI 在多个屏幕上获取键盘高度并移动按钮

iOS webview html5 移动端 软键盘弹起遮挡输入框

“隐藏键盘”按钮不会将键盘隐藏在iPad模拟器上

Android 软键盘隐藏了移动 HTML5 网络应用程序中的输入字段

Chrome的Linux键盘在隐身模式下打开新窗口的快捷键是啥