我的页面底部有一个固定的导航栏,大多数公园在移动 safari 中都可以正常工作。但是,我已经向它添加了一个文本输入字段,现在当文本输入被关注时,它会导致键盘出现,这会迫使固定导航出于某种原因在键盘上方的页面上向上移动,在它和键盘之间添加大约 60px 的空白。此外,它还将元素设置为相对位置,直到输入字段不再聚焦,键盘消失。
需要明确的是,我要解决的问题不是固定导航向上移动,同时保持在视野底部,触摸键盘顶部。相反,它在键盘上方移动了额外的 50 或 60 像素,显示了它和键盘之间的空白,使页面看起来被破坏了。
从长远来看,我要解决的问题的屏幕截图。
这个问题似乎是一个类似的问题,据说是可行的解决方案,所以我在 jquery 中继续使用它。
这里的目标是在虚拟键盘出现时阻止固定导航被推到页面中间,方法是禁用滚动功能,保持固定导航接触页面底部,而不是被上推。这是通过在用户关注文本输入时将正文的溢出更改为隐藏来完成的。
所以这是编程问题:我编写的 jquery(通过将主体设置为溢出来禁用滚动:在输入字段集中时隐藏)在 firefox 中完美运行,但在移动 safari 中它什么也不做:
$(document).ready(function(){
$(".mobile_text_focus_fix").focus(function(){
$("body").css("overflow","hidden");});
$(".mobile_text_focus_fix").blur(function(){
$("body").css("overflow","visible");});
});
上面的 jquery 使用这个 html:
<input type="text" class="mobile_text_focus_fix"></input>
火狐截图:
正如我所提到的,它在 Firefox 中工作,上面是我正在尝试做的一个工作示例,但在移动 safari 中,上面的 jquery 似乎都不起作用。
关于为什么这不适用于移动 safari,但适用于 Firefox 的任何想法?