我有 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.
如何重现:
- Open http://gudulin.ru/test/problem.html http://gudulin.ru/test/problem.html带iPad
- 检查左侧面板是否打开
- 在文本区域中写入任何内容,然后按几次 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(使用前将#替换为@)