
CSS vlastnost animation
Animování prvků na stránce pomocí čistého CSS s využitím @keyframes.
Kromě přechodů transition existují i plnohodnotnější animace v čistém CSS. Podporováno od Internet Exploreru 10. Pro prohlížeče založené na Webkitu je nutnou používat prefix -webkit-.
Klíčové snímky (keyframes)
Animace se složí z jednotlivých klíčových snímků. Jednotlivé kroky mohou být buď znázorněny procenty, nebo v případě, kdy stačí jen dva stavy, lze místo procent použít klíčová slova from a to (ekvivalent 0% a 100%).
@keyframes jmeno-animace {
0% {background: blue}
50% {background: yellow}
100% {background: red}
}
Animace (animation)
Výše nadefinované klíčové snímky se přiřadí danému elementu, syntaxe je dost podobná vlastnosti transition:
element {
animation: jmeno-animace 5s linear;
}
Vlastnost animation je zkrácenina všech animation-* vlastností. Název a doba trvání jsou povinné.
animation-nameNázev animace, která se má selektoru přiřadit.
animation-duration- Délka animace, zadává se v sekundách (např.
animation-duration: 1s). animation-timing-functionSlouží k ovlivňování průběhu animace, tj. že se třeba ze začátku bude animovat rychle a konec animace bude pomalejší (výchozí hodnota
ease). Nebo může být průběh lineární (linear).Průběh (rychlost v jednotlivých fází) animace lze poměrně detailně nastavovat (Ukázka).
animation-delayNastavení zpoždění animace po jejím vyvolání. Čas se zadává rovněž v sekundách.
animation-iteration-countPočet opakování dané animace. Výchozí hodnota je 1, jiným číslem lze požadovaný počet opakování, nekonečné přehrávání zajistí klíčové slovo
infinite.animation-directionSměr animace, možné hodnoty jsou:
normal— výchozí hodnota; animace běží od 0% ke 100%, potom v případě opakování skočí na 0%,reverse— animace běží od 100% k 0%, potom v případě opakování skočí na 100%,alternate— má význam jen u více opakování a při každém změní svůj směr, tj. nejprve poběží z 0% ke 100%, potom se vrátí k 0%, zase poběží ke 100% a tak dále,alternate-reverse— totéž jen se začne od 100%.
animation-fill-modeUpřesňuje, zda se mají hodnoty prvního nebo posledního snímku projevovat i při skončení animace.
none— výchozí hodnota; před animováním s nic nemění, po skončení animace se vše vrátí k normálu,forwards— po skončení animace zůstane stav posledního snímku,backwards— v případě prodlevy před zahájením animace (animation-delay) se nastaví s předstihem hodnoty prvního snímku,both— kombinace výše uvedeného.
animation-play-stateUmožňuje zastavení a opětovné spuštění animace.
running— výhozí hodnota; animace běží,paused— animace je pozastavena, opětovné spuštění naváže v okamžiku předchozího pozastavení.
Více animací
Jeden element může používat animací více. Mají-li animation-* hodnoty být různé pro každou animaci zvlášť, hodnoty se oddělují čárkou (,).
element {animation: prvni-animace 5s, druha-animace 2s}
Vyvolání animace
Animace může být spuštěna třemi způsoby:
- ihned po načtení stránky — pokud by se výše uvedená animace přiřadila např. pro
<h1>, po načtení nadpisy změní své pozadí, - přes CSS pomocí selektorů uživatelské akce (
:hover,:focusapod.), - přidáním třídy JavaScriptem — animace se přiřadí speciální
.třídě, kterou při nějaké akci nastaví JS.
Test animace
Prostor pro vyzkoušení (nefunguje ve starších Explorerech než 10).
Odkazy a zajímavé animace
- Odpočítávání (vlákno na DJPW)
- CSSNTH
- Improve the payment experience with animations
- Bounce.js: Generátor CSS animací
Knihovny animací:
Související články
Možnosti stylování <iframe>
Co lze a nelze u <iframe> ovlivnit pomocí CSS a jak na změnu textu nebo barev.