【问题标题】:What is the jQuery Mobile 1.1.0 - Position-Fixed Method什么是 jQuery Mobile 1.1.0 - 位置固定方法
【发布时间】:2012-06-15 11:42:55
【问题描述】:

jQuery Mobile 1.1.0 Final 刚刚发布并承诺:

“真正的固定工具栏:轻量级、基于 CSS 且广泛兼容”

对于solve all 移动浏览器中的position:fixed 头痛问题,具体的解决方法是什么?

我有一个桌面应用程序(基于 Twitter 引导程序),它的位置:固定工具栏在移动浏览器上无法正常工作? 我想在没有所有其他功能和 CSS jQuery Mobile 的情况下合并特定修复。

【问题讨论】:

  • 我认为他们只是在支持设备中添加了position:fixed,并且只是填充了其他所有内容,但不要引用我的话。早些时候在玩这个新功能,似乎就是这样。 link to polyfill for devices that don't support position:fixed
  • 是的,我也见过这个 polyfill。但是这个 polyfill 要求我包含 jquery.mobile.cssjquery.mobile.js。我想不去。

标签: ios mobile jquery-mobile twitter-bootstrap css-position


【解决方案1】:

简单(或多或少):

1) 浏览器嗅探生成黑名单。
2) 位置:固定为支持的浏览器
3) 位置:其余为静态

在 JQM 中查找此部分:

$.widget("mobile.fixedtoolbar", $.mobile.widget, {...}

由于目前许多移动浏览器不支持 pos:fix,因此在许多浏览器中,您最终会在内容底部看到静态工具栏!!!

还有一个polyfill 可以恢复以前的行为(隐藏-重新定位-显示)。

我只是使用这个 polyfill 的一部分来重新定位元素,然后像这样显示它们:

 el.jqmData("fixed") == "top" ? el.css( "top", $( window ).scrollTop() + "px" ) :
    el.css( "bottom", wrap.outerHeight() - $( window ).scrollTop() - $.mobile.getScreenHeight() + "px" );

如果您的工具栏/元素不必可见,这很好用,因为它从一个设定位置(滚动停止重新计算)与原始固定工具栏(JQM 1.1 之前)重新计算在滚动 (scroll-calculate-scroll-calculate),这对设备硬件造成了太大的压力,导致工具栏卡住或跳跃。

【讨论】:

  • 是的,我认为只使用没有 jqueryMobile 依赖项的 polyfill 的部分是正确的方向,这就是我正在寻找的。您知道实现此方法的任何 Demo 吗?我还查看了 JQM 中的 $.widget( "mobile.fixedtoolbar", $.mobile.widget, {...}。但我还不知道如何重写这个函数,以便它可以在非 JQM 项目中使用。
  • 嗯。没有我知道的演示。旧版本很容易插入(只需声明您的元素 - 就像上面 sn-p 中的我的“el”)而不是 JQM 工具栏选择器。新版本的工作方式必须相同,因此应该有一个类似工具栏的选择器,它表示应该修复的元素。用您选择的元素替换这些元素并拉出小部件。然后看看 JQM 中是否使用了任何其他函数(我假设为 $.mobile.getScreenHeight())并将它们也拉出来
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
相关资源
最近更新 更多