JQuery Mobile transition在长页面上停止工作

JQuery Mobile transition在长页面上停止工作,jquery,jquery-mobile,Jquery,Jquery Mobile,当从长页面底部运行时,页面转换不再发生,我遇到了一个问题 下面是一个JSFIDLE: 如果打开示例并单击黑色导航按钮,则转换将按预期运行。但是,如果返回到长页面,滚动到底部并再次运行,则转换将不再发生,第二个页面将立即显示 任何帮助都将不胜感激 <div data-role="page" id="long"> <div data-role="header" data-position="fixed" data-theme="a"> <h1&g

当从长页面底部运行时,页面转换不再发生,我遇到了一个问题

下面是一个JSFIDLE:

如果打开示例并单击黑色导航按钮,则转换将按预期运行。但是,如果返回到长页面,滚动到底部并再次运行,则转换将不再发生,第二个页面将立即显示

任何帮助都将不胜感激

<div data-role="page" id="long">
    <div data-role="header" data-position="fixed" data-theme="a">
        <h1>Long Page</h1>
        <a href="#short" data-transition="flip" data-role="button" data-theme="b">DO TRANSITION</a>

    </div>
    <div data-role="content" data-theme="a">
        <div class="box">TEST BOX 1</div>
        <div class="box">TEST BOX 2</div>
        <div class="box">TEST BOX 3</div>
        <div class="box">TEST BOX 4</div>
        <div class="box">TEST BOX 5</div>
        <div class="box">TEST BOX 6</div>
        <div class="box">TEST BOX 7</div>        
    </div>
</div>
<div data-role="page" id="short">
    <div id="gridheader" class="header" data-role="header" data-position="fixed" data-theme="a">
        <h1>Short Page</h1>
        <a href="#long" data-transition="flip" data-role="button" data-theme="b"> Back</a>

    </div>
    <div data-role="content" data-theme="a">
        Short page
    </div>
</div>

长页
试验箱1
试验箱2
试验箱3
试验箱4
试验箱5
试验箱6
试验箱7
短页
短页

这是jQuery Mobile在长页面上的默认行为,转换动画被禁用

您可以通过在
pagebeforechange
上滚动到页面顶部来解决此问题

$(document).on("pagebeforechange", function () {
    window.scrollTo(0, $.mobile.defaultHomeScroll);
});
默认情况下为
0
,除非url栏根据设备/平台而隐藏


这是更好的解决办法。在
getMaxScrollForTransition
上乱搞可能会引起问题,因此我删除了我的答案。@ChrisHardie您应该保留您的答案,它包含对该问题的正式引用。感谢Omar的建议。我将使用您的解决方案,并尝试在转换之前添加记录视图位置的功能,以便在返回时向下滚动到视图位置。@user1898327在这种情况下,这可能会有所帮助。