Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Sekwencyjne wykonywanie .animate() a zyzucie procesora
Sajrox
post 6.05.2011, 14:03:36
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam,
Otóż mam pewien problem z funkcją animate() w jQuery.
Chodzi o to że napisałem pewien widget które działa sekwencyjnie, czyli wykonuje w kółko funkcje .animate(). Niestety zauważyłem że sposób tez obciaża mocno procesor.
Dokładnie chodzi o przewijany pasek z wiadomościami (coś jak na tvn24), gdy pasek tez przejdzie caly ekran i przestanie być widoczny koncze działanie skryptu, w innym wypadku przesuwam go dalej co 800px. aż dojdzie do końca.

Kod wyglądam niej więcej tak:

  1. function scrollLeft() {
  2. $('#pasek').animate({
  3. left: '-=800'
  4. }, 300000, "linear", function(){
  5. // gdy pasek jeszcze nie jest za ekranem przegladarki, ponownie uruchamiamy funkcje scrollLeft() w celu dalszego przewijania aż dojdzie do końca
  6. var lastOffset = $('#pasek').find('li:last').offset();
  7. if (lastOffset.left >= 0) {
  8. scrollLeft();
  9. }
  10. else {
  11. // gdy pasek wyjdzie za obszar przeglądarki, konczymy dzialanie i ukrywamy go
  12. $('#pasek').fadeOut();
  13. $('#pasek').html('');
  14. }
  15. });
  16. }
  17.  
  18. scrollLeft();


czy można to jakoś zoptymalizować?
Go to the top of the page
+Quote Post
Kemsan
post 7.05.2011, 22:49:45
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 6
Dołączył: 30.06.2008
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Hm, spróbuj tak - określ jaki width mają razem wszystki elemenety - czyli jaką szerokość ma cały pasek i taką odległość ustal w funkcji animate(), zastąpisz to -=800 wygenerowaną wartością width paska. Dzięki czemu funkcje wyowałasz tylko raz. Co do warunku i funkcji zawartych w else, usuń element zamiast go ukrywać.
+ Jeszcze taka rada: funkcje w jQuery możesz wykonywać w jednym ciągu tzn: $('#pasek').fadeOut().html(''); smile.gif

Ten post edytował Kemsan 7.05.2011, 22:50:31
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:42