8.3. Tvoření animací - @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 changeColors {
0% {background: blue}
50% {background: yellow}
100% {background: red}
}
changeColor je název animace, který si sami zvolíme. Zapisuje se hned po deklaraci @keyframes.
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-name- Ná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-function- Slouží 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í hodnotaease). Nebo může být průběh lineární (linear).animation-delay- Nastavení zpoždění animace po jejím vyvolání. Čas se zadává rovněž v sekundách.animation-iteration-count- Počet opakování dané animace. Výchozí hodnota je1, jiným číslem lze požadovaný počet opakování, nekonečné přehrávání zajistí klíčové slovoinfinite.animation-direction- Smě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-mode- Upř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-state- Umožň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}