3

我的页面底部有一个固定的导航栏,大多数公园在移动 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 的任何想法?

4

1 回答 1

0

您必须添加具有预定义视口宽度的元视口标签:

<meta name='viewport' content='width=device-width'>

这不应该阻止可滚动性,但可以解决您的问题......

更新

否则尝试阻止默认的触摸行为......

于 2013-03-05T19:41:35.330 回答