【发布时间】:2017-05-31 18:55:08
【问题描述】:
这是一个网络应用程序,针对任何移动浏览器,但主要是适用于 iOS10 的 Chrome 和 Safari。 当用户单击任何输入时,浏览器会打开内置键盘,这很好,但我正在尝试调整/重新定位在那个时间点与用户更相关的项目。
是否可以计算键盘的高度以便我可以相应地调整项目?通用解决方案会更好,因为输入可能会打开不同类型的键盘(文本、数字...),但硬编码选项在此阶段也是有效的响应。
我在window.screen、window.innerHeight等周围进行了测试,无济于事...
谢谢!
【问题讨论】:
-
你看过CSS media queries吗?
-
感谢 Alex 的建议,但除非我遗漏了什么,否则媒体查询对于为不同的视口定义不同的布局很有用,但在显示键盘时视口不会改变。
-
我试过
@media all and (max-height: 700px),打开软键盘时触发。在三星 S6、Android 6.0.1 上的 Chrome 浏览器上测试。您也可以通过window.onresize获得成功。用手机试试this fiddle。 -
感谢 Alex 的新建议。显示键盘时,您的小提琴确实会重新计算窗口的高度。虽然不需要媒体管理 - 至少对我而言,因为我需要的只是获取新旧大小的 javascript 逻辑。我相信 window.onresize 是我在自己的场景中缺少的触发器。你确实回答了这个问题。谢谢!
-
除了媒体查询,您还可以使用视口高度 (vh)。媒体查询、vh 或 window.onresize 在 iOS 上都不起作用。 codepen.io/kevinfarrugia/full/ggLKvx
标签: javascript html mobile progressive-web-apps