2

我在使用 jQuery Mobile 网站时遇到问题。有一个工具栏固定在屏幕底部,使用

<footer data-role="footer" data-position="fixed" data-tap-toggle="false">

但是,在 iPhone 上,当键盘出现时,它似乎会向上跳跃——而且它会比键盘向上跳跃,因此工具栏底部和键盘顶部之间存在空间。

要查看效果,请在 iPhone/Mobile Safari 上访问以下 URL:

http://goo.gl/F4blB

单击“加入讲座”按钮,然后在下一个屏幕上,开始在文本框中输入内容。您应该会看到工具栏跳到键盘上方。请注意,它在桌面上运行良好,因此请确保您在 iPhone 上查看问题。

这似乎与页面内容的长度有关。如果只有一两行内容,那也没关系。只有当页面的长度增加时才会出现问题。

即使将窗口大小调整为与 iPhone 窗口一样小,Chrome 也没有问题。

我们使用 jQM 1.3.0 和 jQuery 1.9.1。最新版本的 iOS。

知道如何真正修复工具栏吗?

4

2 回答 2

2

这是 jQuery Mobile 中的一个错误。

您需要自己修复 jQuery Mobile 代码。首先搜索此代码行:

if( screen.width < 500 && $( e.target ).is( o.hideDuringFocus ) && !$( e.target ).closest( ".ui-header-fixed, .ui-footer-fixed" ).length ){

并更改 screen.width < XXX 以适应更大的屏幕设备。

关于这个问题的更多信息可以在这里找到,在其官方票:https ://github.com/jquery/jquery-mobile/issues/4113

于 2013-04-05T11:52:32.040 回答
0

用这个:

https://github.com/jquery/jquery-mobile/issues/5532

$('input, textarea') .on('focus', function (e) { $('header, footer').css('position', 'absolute'); }) .on('blur', function (e) { $('header, footer').css('position', 'fixed'); //强制页面重绘以修复定位不正确的固定元素 setTimeout( function() { window.scrollTo( $.mobile.window .scrollLeft(), $.mobile.window.scrollTop() ); }, 0 ); });

于 2013-09-03T12:33:56.730 回答