jQuery Mobile 响应式面板和文本区域

2024-01-07

我有 jQuery Mobile 应用程序http://gudulin.ru/test/problem.html http://gudulin.ru/test/problem.html.

页面加载后左侧面板打开:$('#my-panel').panel("open");

我添加了一个类ui-responsive-panel到我的页面和 @media css 内容,这样我就可以一起使用面板和页面内容。

在笔记本电脑浏览器上一切正常,但在 iPad 浏览器(Safari 或其他浏览器)上有问题。当左侧面板打开并且我开始在文本区域中输入文本时,输入任何符号后页面会跳转。当您开始在文本区域的底部输入时(当文本从键盘上下来时),问题就出现了。

如果您不明白我的意思,请观看视频:http://www.youtube.com/watch?v=Q6_kM_FshrQ http://www.youtube.com/watch?v=Q6_kM_FshrQ.

如何重现:

  1. Open http://gudulin.ru/test/problem.html http://gudulin.ru/test/problem.html带iPad
  2. 检查左侧面板是否打开
  3. 在文本区域中写入任何内容,然后按几次 Enter 按钮。

Thanks.


我在 jQuery Mobile 论坛上粘贴了同样的问题http://forum.jquery.com/topic/jquery-mobile-responsive-panel-and-textarea http://forum.jquery.com/topic/jquery-mobile-responsive-panel-and-textarea并得到了答案伊斯梅拉兹 http://forum.jquery.com/user/ishmaelaz,所以我将其留在这里来结束这个问题。

几个月来,我一直在类似的响应式面板布局中解决同样的问题,尽管有文本字段。我上周找到了原因,但没有时间组装该问题的演示。

要解决此问题,请编辑 jquery.mobile 并查找_bindFixListener:(1.3.0 中的第 8149 行)。在此例程中,注释掉throttledresize处理程序。一旦你这样做了,跳跃就会停止。

据我所知,这里的问题是,当您在输入文本字段中键入内容时,iOS 会发送调整大小事件。这导致该处理程序触发,它调用 _positionPanel。 _positionPanel 尝试确保面板可见,大概是因为此逻辑针对的是非响应场景,在这种情况下,面板实际上应该始终可见才能有用,但在响应场景中,它只会导致不断跳跃。

可见的键盘似乎是计算出错的关键部分,因为我发现,如果您在页面底部添加一个高 div 使其更长,那么这个逻辑就不会触发,似乎是因为页面底部不在键盘“下方”。不过,到目前为止我还没有测试过,因为一旦我找到了一种让跳跃停止的方法,我就很高兴。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery Mobile 响应式面板和文本区域 的相关文章

随机推荐