【问题标题】:jQuery Mobile - Page jumps to top before transitionjQuery Mobile - 页面在过渡前跳到顶部
【发布时间】:2011-11-30 18:31:46
【问题描述】:

任何人都遇到过页面在转换前快速跳转到顶部的问题(使固定位置的标题在页面的中途看起来丢失了)?

返回页面时,页面最终位于顶部,但由于我正在处理一长串列表,最好将其留在我在上一页中离开的位置。

我使用的是页内 div,而不是实际的单独页面,如果这可能有助于它的话。

感谢任何提示!

【问题讨论】:

    标签: jquery mobile jquery-mobile


    【解决方案1】:

    使用 $.mobile.defaultHomeScroll = 0。

    从这里:https://github.com/jquery/jquery-mobile/issues/2846

    【讨论】:

    • 我遇到了与 OP 完全相同的问题,但这并没有为我解决。有什么想法吗?
    • 重要提示:您必须在 mobileinit 触发后执行此操作,这与其他 $.mobile.* 变量不同。
    • 这适用于返回相同的位置,但我仍然在页面转换之前得到可见的页面跳转。
    • 这里也一样。这个错误(从最终用户的角度来看)使我多年来无法使用 jQuery Mobile。一直没有解决。
    • 为我工作,请记住,如果您愿意,您可以禁用此行为,方法是将 $.mobile.defaultHomeScroll 设置为 0 在添加 jquery mobile 的文档就绪绑定中javascript 包含在您的文档中。
    【解决方案2】:

    这是一个已知问题,可能会在 jQuery Mobile 1.1 中进行重构。问题在于,要为到另一个页面的过渡设置动画,viewport 必须位于页面顶部,以便当前页面和过渡进入的页面垂直排列。

    如果您在一页(比如1000px)上的一个长列表中途而您要转移到的页面只有几百像素高,那么当前页面将正确地在屏幕上显示动画,但新页面将不可见,因为它会在视口上方。

    我通过将iScroll 用于我的滚动区域来解决此问题。这样所有页面都占据视口的 100% 宽度/高度,并且不会发生滚动到顶部之前的转换。

    【讨论】:

    • 感谢您的回答。我们故意避免使用 iScroll,因为它的性能不如原生滚动。我猜它要么是一个跳跃的界面,要么是不太理想的滚动。
    • @DonH,我们刚刚找到了解决方案。请看回复。
    【解决方案3】:

    我们已经多次遇到这种情况。我们的解决方案是确保所有页面都与屏幕高度一致。如果您的内容比屏幕长,那么它会进入可滚动的 DIV 容器中。如果您的目标是 iOS 4 及更低版本,您将需要像 iScroll 这样的库来使 DIV 可滚动为溢出:滚动(或自动)无法正常工作。 完成此操作后,您可以在页面之间平滑过渡。

    【讨论】:

    • 那么,即使使用 jQuery Mobile,iScroll 也需要平滑过渡?正如预期的那样,我认为 jQuery Mobile 将满足我所有的移动 UI 需求。无赖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多