最近我正在开发一个带有大文本区域的移动webapp,需要在视口的底角不断显示两个小按钮。所以我从基础开始:
position: fixed;
bottom: 10px;
这在我的目标设备上运行顺畅,看起来很漂亮(iOS> = 5,Android> = 2.3)。但是,当我给我的大文本区域一个焦点()并出现系统键盘时,问题就开始了。
在iOS浏览器中,键盘只是视口上的一个叠加层 - 因此视口在键盘打开后保持其尺寸,其中一半只是隐藏在它下面。
在大多数Android设备中,键盘外观使视口的高度更小并适合剩余区域,因此我的位置固定在这里工作。但是,有些Android设备就像iOS一样工作,键盘显示为叠加层。
我正在尝试考虑覆盖此问题的最佳方法,而不是使用用户代理字符串。我希望这是一个通用的解决方案。我想出了......好像
//check the viewport height
on(focus) -> see if viewport size changed and change position: fixed
但要做到这一点,我仍然需要在焦点后等待几秒才能让窗口调整大小+我不知道在视口保持不变的情况下放置按钮的位置,因为我可能在任何一个iOS系统(键盘大小不同)或Android设备上有不良行为。
您的想法是什么?