2014-06-27 11 views
6

Występuje problem z przejściami stron, które nie występują już po uruchomieniu od dołu długiej strony.Przejście JQuery Mobile przestaje działać na długiej stronie

Oto jsfiddle: http://jsfiddle.net/7WVHA/7/

Jeśli otworzysz się na przykład i kliknij na przycisku nawigacyjnym czarnym przejście działa zgodnie z oczekiwaniami. Jeśli jednak powrócisz do długiej strony, przewiń do dołu i uruchom ponownie, przejście już nie występuje, a druga strona pojawia się od razu.

Każda pomoc zostanie bardzo doceniona.

<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> 
+0

+1 interesująca .. – Aravin

Odpowiedz

3

Jest to domyślne zachowanie jQuery Mobile na długich stronach, animacja przejścia jest wyłączona.

Możesz rozwiązać ten problem przewijając do góry strony na pagebeforechange.

$(document).on("pagebeforechange", function() { 
    window.scrollTo(0, $.mobile.defaultHomeScroll); 
}); 

$.mobile.defaultHomeScroll jest 0 domyślnie, chyba że bar url jest ukryte w zależności od urządzenia/platformy.

Demo

+1

miła odpowiedź .... – Aravin

+1

Jest to lepsze rozwiązanie. Mucking z 'getMaxScrollForTransition' może powodować problemy, więc usunąłem odpowiedź. –

+0

@ChrisHardie Powinieneś zachować odpowiedź, zawiera ona oficjalne odniesienie do problemu. – Omar

Powiązane problemy