1

最近我正在开发一个带有大文本区域的移动网络应用程序,需要在视口的底角不断显示两个小按钮。所以我从基础开始:

position: fixed;
bottom: 10px;

这在我的目标设备(iOS >=5,Android >= 2.3)上运行顺利并且看起来很漂亮。但是,当我给我的大文本区域一个 focus() 并且出现系统键盘时,问题就开始了。

在 iOS 浏览器中,键盘只是视口上的一个覆盖层 - 因此视口在键盘打开后保持其尺寸,其中一半只是隐藏在它下面。

在大多数 android 设备中,键盘外观使视口的高度更小并适合剩余区域,因此我的位置固定在这里工作。但是,一些 android 设备的工作方式与 iOS 类似,并且键盘显示为覆盖。

我正在尝试考虑解决此问题的最佳方法,而不是使用用户代理字符串。我希望这是一个通用的解决方案。我想出来了

//check the viewport height
on(focus) -> see if viewport size changed and change position: fixed

但要做到这一点,我仍然需要在焦点后等待几秒钟才能让窗口调整大小+如果视口保持不变,我真的不知道将按钮放在哪里,因为我可能在任何 iOS 系统上(键盘有不同的尺寸)或在安卓设备上表现不佳。

你怎么看?

4

0 回答 0