Tato „prezentace“ demonstruje pokročilé vlastnosti SMIL animací
v SVG. SMIL umožňuje animovat atributy přímo v kódu SVG (např. r
,
fill
, transform
, atd.). Dnešní příklady ukazují
calcMode, autoReverse (podobné
animation-direction
), keySplines (podobné
animation-timing-function
) a fill
(podobné animation-fill-mode
).
calcMode
(způsob výpočtu mezihodnot)
Atribut calcMode
určuje, jak se počítají mezihodnoty mezi
definovanými klíčovými body. Běžné hodnoty:
keySplines
pro konkrétní Bézierovy křivky mezi klíčovými snímky.calcMode
Pozn: keyTimes
a keySplines
se používají u calcMode="spline"
,
aby definovaly, jak přesně probíhá interpolace v jednotlivých intervalech.
autoReverse
(ekvivalent animation-direction: alternate
)
V SMIL neexistuje přímo atribut animation-direction
,
ale podobného efektu „tam a zpět“ dosáhnete u <animateMotion>
pomocí autoReverse="true"
.
Zde ukázka pohybu po cestě, který se po dokončení otočí a jede zpět.
Zde autoReverse="true"
funguje jako
„animation-direction: alternate“ v CSS.
Kolečko dojede na konec cesty a poté se vrací stejnou cestou zpět.
keySplines
(ekvivalent animation-timing-function
)
Pokud calcMode="spline"
, lze pomocí atributu keySplines
definovat Bézierovy křivky, podobně jako v CSS cubic-bezier()
.
To ovlivňuje „zrychlení/zpomalení“ mezi jednotlivými klíčovými snímky.
Definujeme 3 klíčové body (0, 0.5, 1) a pro každý z nich
keySplines
, což je křivka (x1 y1 x2 y2)
,
známá i z cubic-bezier()
v CSS. Hodnoty
0.42 0 0.58 1
reprezentují
ease-in-out.
fill
(ekvivalent animation-fill-mode
)
V SMIL se používá atribut fill
(hodnoty freeze
nebo remove
) k určení, co se stane po skončení animace.
- freeze: objekt zůstane v koncové hodnotě.
- remove: vrátí se do původního stavu před animací.
freeze
a remove
První kruh (freeze) si po dvou sekundách uchová poloměr 40, zatímco druhý (remove) se vrátí na původních 20.
SMIL animace poskytují silné možnosti přímo v SVG, včetně
calcMode, autoReverse, keySplines či
fill (analogických ke klíčovým možnostem z CSS).
Přestože je budoucnost SMIL diskutovaná (část vývojářů
přechází k Web Animations API nebo
CSS animacím), zůstává SMIL nadále praktickou
volbou pro animaci čistě uvnitř SVG, zejména pokud potřebujete
animovat atributy jako d
(morfování cest) či přesně
definovat křivky pohybu a další parametry.