我只能找到人们有相反问题的问题。
我希望我的固定内容在iOS键盘上显示。问题图片:
我希望iOS的行为和Android一样。
有没有一个简单的方法来实现这一点?
父元素css:
.parent{
position:fixed;
top: 0;
left 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
}
按钮css:
.button{
position:fixed;
left 0;
right: 0;
bottom: 0;
width: 100%;
height: 5rem;
}
3条答案
按热度按时间a5g8bdjr1#
移动电话上的Safari不支持定位:已修复聚焦输入并显示虚拟键盘时的问题。
要强制它以与移动的Chrome相同的方式工作,您必须使用position:绝对高度:100%用于整个页面或伪固定元素的容器,拦截滚动、触摸结束、焦点和模糊事件。
诀窍是在激活焦点之前将点击的输入控件放在屏幕底部。在这种情况下,iOS Safari总是按预期滚动视口,window.innerHeight会变成完全可见的高度。
在移动电话上的Safari中打开https://avesus.github.io/docs/ios-keep-fixed-on-input-focus.html以查看其工作原理。
请避免使用具有多个可聚焦元素的窗体,因为需要更多的技巧来固定位置,这些只是为了演示目的而添加的。
请注意,对于旋转和横向模式,需要额外的技巧。我正在开发一个名为Tuff.js的框架,它将提供一个全屏容器,帮助移动的Web开发人员更快地构建Web应用程序。我花了将近一年的时间进行这项研究。
顺便说一下,为了防止整个窗口滚动时,虚拟键盘是活动的,你可以使用这个超级简单的技巧
第一个
从here获得此答案
mwg9r5ms2#
We can use VisualViewport to calculate keyboard height. So we can set fixed-content pos correct.
Small demo: https://whatwg6.github.io/pos-above-keyboard/index.html
Code snippet:
Problems: https://developers.google.com/web/updates/2017/09/visual-viewport-api#the_event_rate_is_slow
Why not innerHeight?: Iphone safari not resizing viewport on keyboard open
kokeuurv3#
这是一个众所周知的问题,不幸的是,人们必须求助于像现在公认的答案那样的黑客技巧。
注意:在撰写本文时,这个答案还没有 * 准备好 *。重要的是要理解,这个规范也必须是前瞻性的,以适应未来无数可能的虚拟键盘。可能需要几年的时间才能出现可靠的跨平台浏览器支持,这个答案才是正确的。