Jquery 如何在mobile safari中短暂禁用滚动?

Jquery 如何在mobile safari中短暂禁用滚动?,jquery,ios5,jquery-mobile,position,mobile-safari,Jquery,Ios5,Jquery Mobile,Position,Mobile Safari,我在我的页面底部有一个固定的导航栏,对于大多数公园来说,它在移动safari中运行良好。然而,我已经在它上面添加了一个文本输入字段,现在当文本输入被聚焦时,它会导致键盘出现,这会出于某种原因迫使固定导航在页面上向上移动到键盘上方,在它和键盘之间添加大约60像素的空白。此外,它还将元素设置为相对位置,直到输入字段不再聚焦,键盘消失 要清楚的是,我试图解决的问题不是固定导航向上移动,同时保持在视野的底部,触摸键盘的顶部。相反,这是因为它在键盘上方额外移动了50或60个像素,显示了它和键盘之间的空白,

我在我的页面底部有一个固定的导航栏,对于大多数公园来说,它在移动safari中运行良好。然而,我已经在它上面添加了一个文本输入字段,现在当文本输入被聚焦时,它会导致键盘出现,这会出于某种原因迫使固定导航在页面上向上移动到键盘上方,在它和键盘之间添加大约60像素的空白。此外,它还将元素设置为相对位置,直到输入字段不再聚焦,键盘消失

要清楚的是,我试图解决的问题不是固定导航向上移动,同时保持在视野的底部,触摸键盘的顶部。相反,这是因为它在键盘上方额外移动了50或60个像素,显示了它和键盘之间的空白,使第页看起来像是断了的

我试图长期解决的问题的截图。

这似乎是一个类似的问题,有一个假定有效的解决方案,所以我在jquery中进行了讨论

这里的目标是在虚拟键盘出现时,通过禁用滚动功能,使固定导航保持在页面底部,而不是向上推,来阻止固定导航被推到页面中间。这是通过在用户关注文本输入时将正文的溢出更改为隐藏来实现的

所以这里有一个编程问题:我在中编写的jquery(通过将body设置为overflow:hidden,同时将输入字段设置为焦点)在firefox中工作得很好,但在mobile 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屏幕截图:

正如我提到的,它在Firefox中工作,上面是我尝试做的一个工作示例,但在mobile safari中,上面的jquery似乎都不起作用


你知道为什么这不适用于mobile safari,而适用于firefox吗?

你必须添加一个具有预定义视口宽度的元视口标记:

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

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

更新


否则,请尝试阻止默认的触摸行为…

我的标题中已包含此内容。“”@user1803405好的,我检查一下,给我30分钟,我还不在家。你能再给我们一些加价吗?或者准备好让我们一起玩。