2012-10-04 14 views
5

Aktualnie rozwijam witrynę mobilną, w której używam jQuery Mobile. Podczas przełączania stron używam przejścia slajdowego. Ponieważ te strony są dość długie, potrzebne jest przewijanie.Zachowaj pozycję przewijania za pomocą przełącznika slajdów jQuery Mobile

Po przewinięciu w dół i kliknięciu linku widoczny jest widoczny skok, gdy strona przewinie się do góry przed przesuwaniem na nowej stronie. Ponieważ dwie strony sąsiadują ze sobą, kiedy trzeba przejść w górę do góry.

Jedna rzecz, którą próbowałem to: Potrafię przesunąć nową stronę od góry tak, aby zaczynała się od poziomu strony przewijanej i resetować przesunięcie z powrotem do 0 po zakończeniu animacji, ale potem strona pozostanie przewijana w dół. Jeśli używam window.scrollTo lub scrollTop() jQuery, zauważalny migotanie jest najbardziej zauważalne w przypadku stałego nagłówka.

Czy jest coś, co mogę zrobić, co powoduje przewijanie starej strony, ale nowa strona nie jest przewijana?

Testowałem to w iPodzie touch 3. generacji, iPhone 4 i iPhone 4s, a do tej pory urządzeniem, które do tej pory zapewniało mi najmniejsze migotanie, był iPod touch.

Odpowiedz

-1

po prostu umieść return false; na końcu wywoływanej funkcji javascript.

 function yourFunctionBeingCalled(){ 
     /*your code*/ 
     return false; 
    } 

można również użyć preventDefault(); lub event.stopPropagation(); Funkcje

reffer: event.preventDefault() vs. return false

Nadzieję, że pomogło.

0

Wystarczy dodać ten CSS

div[data-role='page'] { bottom: 0; -webkit-overflow-scrolling: touch; } 

(od here)

Powiązane problemy