Základy CSS Animací — Od Keyframes po Transitions
Naučte se rozdíl mezi transitions a keyframes. Pokrývá praktické příklady a běžné chyby, kterým se lze vyhnout.
Přečíst článekJak spouštět animace na základě polohy scrollování. Obsahuje kód i upozornění na to, co ne všichni uživatelé mohou vidět.
Scroll animace jsou efekty, které se spouštějí v okamžiku, kdy se prvek na stránce stane viditelný. Nejsou to klasické animace — ty by běžely od načtení stránky. Ty se aktivují pouze tehdy, když si je uživatel sám “přivolá” scrollováním dolů.
Parallax je speciální druh scroll animace, kde se pozadí pohybuje pomaleji než obsah v popředí. Vytváří to hloubku a třírozměrný efekt. Když to uděláte správně, web vypadá mnohem sofistikovaněji. Ale je tu háček — ne všichni uživatelé je budou vidět stejně.
Scroll animace dělají web “živým”. Když se prvky animují při scrollování, uživatel má pocit, že se stránka reaguje na jeho akce. To není jenom hezké — je to praktické. Animace navedou pozornost na důležité prvky. Řeknu vám, jaké jsou nejčastější chyby.
Existují tři hlavní přístupy. Nejstarší je JavaScript, kde sám hlídáte pozici scrollu. To funguje, ale není to nejrychlejší. Lepší je CSS s Intersection Observer API — to je moderní způsob, jak detekovat, kdy se prvek stane viditelný. Třetí přístup je CSS s View Transitions, který se teď začíná podporovat v moderních prohlížečích.
My se zaměříme na praktické příklady. Budeme používat Intersection Observer, protože je to standard, kterému rozumí všichni vývojáři a funguje na všech moderních prohlížečích. Není to těžké — stačí vám pár řádků JavaScriptu a dobré CSS animace.
Nejjednodušší a nejčastěji používaný efekt. Prvek je skrytý (opacity: 0) a když se stane viditelný, postupně se objevuje. Trvá to typicky 600-800 milisekund. Je to tichý efekt, kterého si všimnou všichni, ale neotravuje.
Prvek se pohybuje ze strany (zleva, zprava, shora, zdola) a současně se objevuje. Kombinace translateX a opacity. Vypadá to dynamičtěji než pouhý fade. Ideální pro seznamy a cards. Čas animace: 700-900 ms.
Pozadí a obsah se pohybují různou rychlostí. Vytváří to iluzi hloubky. Pozadí se pohybuje pomaleji (třeba 50 % rychlosti scrollu), obsah normálně. Dělá to web třírozměrným, ale pozor — na mobilech to může být pomalé.
Scroll animace jsou pěkné, ale mohou znatelně zpomalit web. Zvlášť parallax efekty. Důvod je jednoduchý — browser musí vykreslovat nový frame v každém pixelu scrollu. To může být 60 nebo dokonce 120 krát za sekundu.
Pravidla pro rychlý web: Používejte CSS transforms (translateX, scale) místo top/left. Ty jsou GPU akcelerovány. Neanimujte width a height — jsou pomalé. Pokud máte parallax, omezte jej na 2-3 prvky, ne všechny na stránce. A vždy testujte na starších zařízeních — iPad z roku 2015 nebude vděčný za 30 parallax vrstev.
Ne všichni uživatelé vidí animace stejně. Někdo má prefers-reduced-motion zapnutý v operačním systému. To znamená, že chce minimální pohyb. Pokud mu dáte parallax na 100 % stránky, bude to otravovat.
Řešení je jednoduché. V CSS napíšete media query:
@media (prefers-reduced-motion: reduce)
. Tam vypnete animace nebo je zpomalíte. Animace by měla trvat
minimálně 200 ms (aby byla vidět) a maximálně 1 sekunda (aby
byla rychlá). Všichni jsou pak spokojení.
Animace nejsou estetika — jsou součástí UX. Měly by pomáhat uživateli porozumět stránce, ne jej zpomalovat. Pokud si nevíte jistí, zeptejte se sami sebe: “Pomáhá tahle animace nebo jen hezky vypadá?”
Scroll animace a parallax efekty nejsou raketová věda. Jsou to CSS animace spojené s detektorem viditelnosti prvků. Fungují fantasticky, když je používáte chytře. Fade-in efekty jsou téměř vždy dobrá volba. Parallax je skvělý pro hero sekce, ale ne pro celou stránku.
Klíč je v rovnováze. Animace dělají web pamětihodným, ale příliš mnoho jich dělá web těžkopádným. Testujte vždy na reálných zařízeních. A nezapomeňte na uživatele se sníženou pohyblivostí — ta jsou taky důležití.
Tento článek poskytuje obecné informace o scroll animacích a parallax efektech. Konkrétní implementace se může lišit v závislosti na vašem technologickém stacku a požadavcích projektu. Vždy testujte animace na cílových zařízeních uživatelů. Výkon a chování se mohou lišit podle prohlížeče, operačního systému a hardwaru. Pro kritické projekty konzultujte s odborníkem na web performance. Informace v tomto článku jsou aktuální k únoru 2026, ale webové technologie se neustále vyvíjejí.