Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] animacja w chrome, firefox oraz IE, Wydajność animacji w przeglądarkach
blady101
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.12.2011

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


Witam

Animuję 5 obiektów (3 x div, 2 x img) każdemu zmieniam tylko szerokość i wysokość. W Chrome działa perfekcyjnie. W Firefox 9 już gorzej, a w Internet Explorerze 8 szkoda słów. Potworne lagi.

Da się to jakoś zoptymalizować? Wiem, że 5 animacji to sporo, ale powiększam tylko rozmiary. Skalowanie dwóch obrazków jest tak kosztowne? Może słyszał ktoś o jakichś sposobach optymalizacji. Kod:

CODE
<div class="line">

<div><table><tr><td>
<img src="dsf.png"/>
</td></tr></table></div>

<div><table><tr><td>
<img src="dsf.png"/>
</td></tr></table></div>

</div>


Skaluję wszystkie trzy divy i oba obrazki.

Dodam, że zależy mi najbardziej na tym, by na firefoxie działało lepiej. I jeszcze Opera, animacje ma ok, ale jeszcze animuję główny suwak strony, i już działa skokowo. Skąd takie ustrojstwo?

Ten post edytował blady101 29.12.2011, 23:16:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A po co bezsensownie wsadasz je w tabele?
Poza tym możesz uzyć http://playground.benbarnett.net/jquery-animate-enhanced/
Go to the top of the page
+Quote Post
blady101
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.12.2011

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


W table to wrzucam by wycentrować w pionie zawartość. Najlepsza metoda, działa najpłynniej na najpopularniejszych przeglądarkach. Tak przynajmniej wychodziło jeśli chodzi o mój kod.

Co do tego pluginu to bardzo ciekawy, ktoś się musiał nieźle napocić. Niestety u mnie poprawia się tylko na Chromie gdzie i tak mam już dobrą jakość, i na Operze, co jest dla mnie mało istotne. Na Firefox na którym mi zależy się pogoszyło, tak samo na IE.

Ten post edytował blady101 29.12.2011, 23:23:58
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A jakiej wersji jquery używasz?
Poza tym spróbuj http://microjs.com/#jsanimation
O ile dobrze pamiętam to jquery nie wspiera requestAnimationFrame więc animacje nie zawsze będą płynne...
Poza tym jakbyś wystawił to na jsfiddle aby można było potestować byłoby fajnie
Powód edycji: [wookieb]:
Go to the top of the page
+Quote Post
blady101
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.12.2011

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


Używam jQuery 1.6.4
Go to the top of the page
+Quote Post
prowseed
post
Post #6





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

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


Próbowałeś animacji w css3?
Go to the top of the page
+Quote Post
blady101
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.12.2011

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


Załadowałem już plugin o którym wspomniał wookieb. Miał on dostosowywać jeśli to możliwe animację do CSS3, ale pogorszyło to tylko sprawę.

Ten post edytował blady101 29.12.2011, 23:40:59
Go to the top of the page
+Quote Post
prowseed
post
Post #8





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

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


Nie, napisz sobie po prostu animacje w css3, najszybciej:
  1. img:hover {
  2. -webkit-transform: scale(2);
  3. -moz-transform: scale(2);
  4. -o-transform: scale(2);
  5. transform: scale(2);
  6. }


Ten post edytował prowseed 29.12.2011, 23:56:02
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
O ile dobrze pamiętam to jquery nie wspiera requestAnimationFrame więc animacje nie zawsze będą płynne...

http://bugs.jquery.com/ticket/8101

Cytat
Animuję 5 obiektów (3 x div, 2 x img) każdemu zmieniam tylko szerokość i wysokość. W Chrome działa perfekcyjnie. W Firefox 9 już gorzej, a w Internet Explorerze 8 szkoda słów. Potworne lagi.

Skalowanie obrazków, niestety, daje najbardziej popalić. Wiele zależy tu od konfiguracji przeglądarki - w Chrome chyba domyślnie jest wykorzystywane dopalanie GPU, dlatego działa płynnie; do tego dochodzi sposób interpolacji (niektóre wygładzają, niektóre nie).

Puść gdzieś to na żywo, wtedy coś więcej będzie można powiedzieć.
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(erix @ 29.12.2011, 23:55:47 ) *

Już to widziałem ale... http://code.jquery.com/jquery-1.7.1.js i znajdź wystąpienie słowa "requestAnimationFrame"
Go to the top of the page
+Quote Post
blady101
post
Post #11





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.12.2011

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


We firefoxie cały czas mam włączone wspomagania sprzętowe. Więc to chyba wynika z jakości przeglądarki i wsio. Gdy chociaż udało się upłynnić animację scrollowania strony. Niestety nie mogę pokazać ani oryginalnego kodu, ani uploadować to gdzieś i pokazać. Może ktoś wie coś na temat animacji scrolla w firefoxie? Kod JS wygląda tak:

CODE
$('html,body').animate(
{
scrollTop: pos_y
},
{
duration: speed_y,
easing: 'linear'
}
);


Dałem linear bo bajerów nie potrzebuję, a trochę to usprawniło działanie, jednak nadal za mało. Strona przewija się ewidentnie skokowo. Co jest cholernie dziwne, bo jak to wyłączę i sam przewijam to jest płynnie. Kompletnie bez sensu.

EDIT:

Płynność w Firefoxie osiągnięta! (IMG:style_emoticons/default/zakochany.gif)

Podczas animacji ustawiam w kaskadzie styli parametr image-rendering na optimizeSpeed a po animacji przywracam na optimizeQuality. I wszystko pięknie gra!

Nie co przyśpieszyłem też na IE robiąc to samo ale z parametrem -ms-interpolation-mode. Jednak nadal muli że cholera bierze.

Ten post edytował blady101 30.12.2011, 13:04:19
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 02:09