Diskuze: Nefunguje JS animate
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
A co si myslíš, že ti nefunguje – respektive co by to mělo dělat?
Kulička by měla random jezdit po obrazovce - to funguje. Ale nemění barvu při každém pohybu (ve FORu).
x.css("background-color","yellow")
//tohle nefunguje
Důležité je si uvědomit, co vlastně ty změny stylů dělají. Základní myšlenka je ta, že nemůžeš jen tak měnit position left vs right a top vs bottom. Vždy ideálně nastavuj jen jeden z těchto rozměrů (left vs right, top vs bottom), aby jsi zabránil kolizi. Protože co je pozice left: 10 a right: 50?
Změna CSS barvy funguje korektně podle toho, co jsi napsal. Chtěl jsi, aby se 100x po sobě něco provedlo, což se stalo a samozřejmě, jelikož je to opravdu strašně rychlé, tak vidíš jen poslední barvu. Možná se ptáš, proč funguje animace, když se to taky přeci musí provést strašně rychle. A na to existuje také jednoduchá odpověď – animate funguje jinak. Pomocí animate přidáš na daný element tu chtěnou úpravu do fronty animací, která je postupně zpracováván. A animate má defaultně nastavenou rychlost na něco jiného, než 0ms, třeba na 800ms – proto vidíš změny.
Tady jsem si dovolil upravit trochu kód a přidat výpis do konzole. Každý řádek v konzoli reprezentuje jednu iteraci for cyklu a podle toho uvidíš, že se to zpracuje okamžitě, všech 100 iterací najednou – z pohledu oka.
Vím, je to jenom taková blbost, snažím se naučit JS/jQuery a tohle mi
vrtalo hlavou.
Děkuju za prožití AHA momentu!
Zobrazeno 5 zpráv z 5.