2012-04-11 20 views
15

Zrobiłem prostą aplikację dla mojego iPhone'a za pomocą jQuery Mobile i Phonegap. działa bardzo dobrze, ale aplikacja wykorzystuje się następujące przejścia do innej strony i że była powolna jak cholera:Jak przyspieszyć animację przejścia strony?

<a data-role="button" id="about_link" data-transition="slide" 
    href="#page3" data-icon="gear" data-iconpos="left"> 
    Settings 
</a> 

Wystarczy prosty a robi magię tutaj i to spowodowało dziwne 400ms lag itp ..

Teraz po wielu lekturach wykonałem przycisk a jako div i osobiście zająłem się wydarzeniem kliknięcia, aby przycisk był szybszy.

$("#about_link").live("touchstart", function(){ 
    slideTo('#page3',false); 
}); 
function slideTo(page,reverse){ 
    $.mobile.changePage(page, { 
     transition: "slide", 
     reverse: reverse 
    }); 
} 

Różnica jest znacząca, ale wciąż jest zbyt powolna jak na mój gust. Wygląda na to, że jQuery Mobile czeka, aż cała animacja przycisku (najechanie kursorem i kliknięcie) zakończy się, zanim przejdzie na drugą stronę.

Teraz moje pytania:

  1. Czy touchstart najszybszy sposób? Użyłem innych bibliotek, takich jak fastclick, ale to też nie było super szybkie.
  2. Czy animacja przycisku to badguy tutaj? Czy mogę go wtedy wyłączyć?
  3. Czy możecie mi dać wskazówki? Google nie jest moim przyjacielem w tym konkretnym problemie ...

Gr.

+0

Próbowanie Czy zrobilibyśmy różne rodzaje przejść między stronami? Chodzi mi o to, że jak zanika – uday

+0

slideUp wygląda liiiitle trochę szybciej, ale to może być tylko złudzenie ze względu na inny kierunek i dłuższą odległość. Fade wydaje się być taki sam. –

Odpowiedz

33

To rzeczywiście w CSS jQuery mobile za:

.in, .out { 
    -webkit-animation-timing-function: ease-in-out; 
    -webkit-animation-duration: 350ms !important; 
} 

Wystarczy dostosować MS i jesteś dobry.

+2

+1 Fantastyczny, miałem zamiar opublikować to samo! – uday

+0

Hej człowieku, przepraszam za niewiarygodną spóźnioną odpowiedź: D To pomogło, ale nadal na Iphonie uważam, że rzeczy nie są optymalne. Mam aplikacje, które reagują natychmiastowo, wciąż mam trochę opóźnienia. Więcej wskazówek? –

+7

Musiałem użyć! Ważne, aby zmienić czas trwania: -webkit-animacja-czas trwania: 660ms! Important; – appcropolis

Powiązane problemy