2011-12-21 9 views
7

Używam jQuery mobile 1.0. kiedy przechodzę na jedną stronę do innej strony w iPhonie, druga strona przychodzi i migocze, a następnie pokazuje pierwszą stronę i całkowicie przenosi się na drugą stronę. Jak to naprawić? z góry dzięki ..Migotanie interfejsu użytkownika podczas zmiany strony w jQuery mobile

Aktualizacja: możesz sprawdzić przykład http://gugl.org/page1.html.

+4

Twoje pytanie jest całkowicie nieodwracalne w ten sposób. Nie podajecie żadnych informacji o używanej przeglądarce ani używanym urządzeniu, nic o użytym kodzie ani o jakimkolwiek innym JavaScriptu. – RoToRa

+0

Tak, testowałem na iPhonie. Kod powrotu edn został opracowany w javascript. – selladurai

+2

Edytuj pytanie, może dodaj przykładowy kod, którego używasz, błędy itp. –

Odpowiedz

2

Proszę dać mi znać, jeśli następuje pomaga swoim migotania:

/* Remove flicker on Android/WebKit */ 
.ui-page { 
    -webkit-backface-visibility: hidden !important; 
} 

Ten fragment pochodzi z ostrzeżeniem, choć. Chociaż może rozwiązać problem z migotaniem, często wprowadza inne problemy.

Na przykład utknąłem przez tydzień, próbując dowiedzieć się, dlaczego moje mapy google nie działają już tak, jak powinny, i okazało się, że przyczyną tego problemu był ten fragment. Przejdę do selektywnego kierowania tej reguły na wszystkie strony, które nie mają w nich map.

+1

Nie, to nie pomaga :(Widziałem to rozwiązanie w sieci.Rozwiązuje inny problem i z systemem Android, a nie iPhone.A jako obejście ustawiłem z wyłączaniem animacji.Ale nadal szukam rozwiązania – Roman

+1

Dziękuję, pomogło mi to w problemie, w którym przejścia migały tylko w trybie pełnoekranowym na iPadzie, nadal lekkie migotanie przy początkowym obciążeniu, ale o wiele lepiej – row1

0

Prawdopodobnie wystarczy włączyć touchOverflowEnabled

Przykład:

<script> 
$(document).bind("mobileinit", function() { 
    $.support.touchOverflow = true; 
    $.mobile.touchOverflowEnabled = true; 
}); 
</script> 

Należy również zauważyć, że to nie będzie konieczne w jqm 1.1.0. Więcej o this here.

0

To zachowanie może być spowodowane przez kilka pozycji.

  • Długie listy danych, które wykraczają poza początkowy przewijanie ekranu. Muszą
    czasu do renderowania, gdy przewija ekran
  • Dynamiczny wtrysku danych - samo potrzebuje czasu do renderowania
  • Android wydaje się migotać wszędzie. Jedną rzeczą, którą zrobiliśmy, było po prostu wyłączyć przejścia dla stron z Androidem i domyślne je zanikać. W rzeczywistości jest to podejście, które JQM będzie biorąc w następnej wersji.
  • użycie non AJAX stronie powiązań niż wrócić do podstawowej aplikacji

Są to tylko kilka rzeczy, które mogą być przyczyną zachowań może być wyświetlany. Przynajmniej jest to punkt wyjścia do rozwiązywania niektórych problemów.

0

sprawdzić, czy to działa lepiej dla Ciebie:

http://jquerymobile.com/test/ 

Jest to znany problem z wersji 1 & ten został zgłoszony jako zamknięty bug na iOS. Zostało to opracowane i zostanie oficjalnie wydane w wersji 1.1.

W międzyczasie strona testowa ma najnowszy kod, jeśli nie możesz się doczekać.

(zwykle o zrzeczenie o użyciu kodu testowego w produkcji tutaj.)

zmiana: Zapowiedź jQuery Mobile, 1.1.0 RC1
http://jquerymobile.com/blog/2012/02/28/announcing-jquery-mobile-1-1-0-rc1/

Demo jest pod adresem: http://jquerymobile.com/demos/1.1.0-rc.1/

+1

Hmm ... nie tylko 1.1-rc1 zmienił domyślne przejście "Zniknąć", nie można uzyskać "slajdu" z powrotem. https://github.com/jquery/jquery-mobile/commit/5da1f11c4b90965484dd71a61867528c4718c593 – Roman

+1

Powinieneś być w stanie przesłonić zgodnie z dokumentami, w przeciwnym razie zmienić go na link, który pod warunkiem. :) – Cymbals

3

rozwiązać ten problem za pomocą następującego kodu CSS:

.ui-mobile-viewport-transitioning, 
.ui-mobile-viewport-transitioning .ui-page { 
    overflow: visible; 
} 

Wspominam go więcej w my blog.