【问题标题】:Disable jQuery Mobile transition when going back in iOS7 Safari history返回 iOS7 Safari 历史记录时禁用 jQuery Mobile 转换
【发布时间】:2014-04-13 07:45:46
【问题描述】:

如 iOS7 上 Safari 中的 here 所述 - 如果您从屏幕左侧滑入,则会触发历史记录返回事件,就像用户单击返回按钮一样。

jQuery Mobile 的默认行为是在返回上一页时反转用于到达特定页面的转换。这在使用 <> 按钮时效果很好,但从左侧滑入时看起来很糟糕。

有没有办法使用 jQuery mobile 完全禁用“反向”方向的转换?

【问题讨论】:

    标签: jquery-mobile


    【解决方案1】:

    只需在页面小部件上捕获pagecontainerbeforetransition 事件。

    然后您可以查看ui.options.reverse 并取消转换。如果你愿意,你可以检测到 iOS7,但我想我只会把这个给我所有的访问者。

        $(document).on("pagecontainerbeforetransition", function (event, ui)
        {
            if (ui.options.reverse == true)
            {
                ui.options.transition = "none";
            }
        });
    

    这是一个典型的ui.options 对象的示例。

    {"reverse":true,"changeHash":false,"fromHashChange":true,"showLoadMsg":true,
     "allowSamePageTransition":false,"transition":"none"}
    

    出于某种原因reverse 似乎总是正确的,即使在向前导航时也是如此。可能是但是,但我还是决定检查一下。


    【讨论】:

    • 监听navigate事件,如果方向是back,设置ui.options.transitiionnonejsfiddle.net/Palestinian/7Gy3S
    • 您应该将此作为另一个答案发布
    • 这只是您答案的更新。随意将其添加到您的 :) 编辑:顺便说一句,如果您按浏览器后退按钮或与data-rel=back 有链接,方向将是back
    • 我已更新演示以反映我之前的评论。请继续并将其添加到您的答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 2023-03-31
    • 1970-01-01
    • 2012-10-26
    相关资源
    最近更新 更多