Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m291:learningunits:lu12:theorie:b_keyframes [2026/05/18 00:19] – angelegt gkoch | de:modul:m291:learningunits:lu12:theorie:b_keyframes [2026/05/18 00:35] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| In dieser Lerneinheit lernen Sie, wie CSS Keyframe Animationen funktionieren — und wie Sie diese sinnvoll in eine Vue.js-Applikation integrieren. | In dieser Lerneinheit lernen Sie, wie CSS Keyframe Animationen funktionieren — und wie Sie diese sinnvoll in eine Vue.js-Applikation integrieren. | ||
| Zeile 7: | Zeile 7: | ||
| CSS bietet zwei Wege, um Animationen zu erstellen. Der Unterschied liegt im Auslöser und in der Komplexität: | CSS bietet zwei Wege, um Animationen zu erstellen. Der Unterschied liegt im Auslöser und in der Komplexität: | ||
| + | |||
| + | <WRAP center round box 80%> | ||
| ^ Merkmal | ^ Merkmal | ||
| | Auslöser | | Auslöser | ||
| - | | Zwischenschritte | + | | Zwischenschritte |
| | Wiederholung | | Wiederholung | ||
| | Typische Anwendung | | Typische Anwendung | ||
| + | </ | ||
| **Faustregel: | **Faustregel: | ||
| Zeile 21: | Zeile 23: | ||
| Eine Keyframe Animation besteht immer aus zwei Teilen: | Eine Keyframe Animation besteht immer aus zwei Teilen: | ||
| - | **1. Der '' | + | **1. Der '' |
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| @keyframes meinAnimation { | @keyframes meinAnimation { | ||
| Zeile 30: | Zeile 32: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| **2. Die '' | **2. Die '' | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| .element { | .element { | ||
| Zeile 39: | Zeile 42: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| Die '' | Die '' | ||
| + | <WRAP center round box 80%> | ||
| < | < | ||
| animation: [name] [duration] [timing-function] [delay] [iteration-count] [direction] [fill-mode]; | animation: [name] [duration] [timing-function] [delay] [iteration-count] [direction] [fill-mode]; | ||
| </ | </ | ||
| + | </ | ||
| ===== Keyframes vereinfachen: | ===== Keyframes vereinfachen: | ||
| Sie müssen nicht immer '' | Sie müssen nicht immer '' | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| /* Ausführlich: | /* Ausführlich: | ||
| Zeile 63: | Zeile 66: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| Dieser **Partial Keyframes-Trick** spart Code, wenn der Startwert dem CSS-Default des Elements entspricht. Er funktioniert auch bei komplexeren Animationen: | Dieser **Partial Keyframes-Trick** spart Code, wenn der Startwert dem CSS-Default des Elements entspricht. Er funktioniert auch bei komplexeren Animationen: | ||
| Zeile 72: | Zeile 75: | ||
| Ohne '' | Ohne '' | ||
| + | <WRAP center round box 80%> | ||
| < | < | ||
| Zeit: 0ms ─────────── 400ms ────────── | Zeit: 0ms ─────────── 400ms ────────── | ||
| Zeile 85: | Zeile 88: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| + | <WRAP center round box 80%> | ||
| ^ Wert ^ Bedeutung | ^ Wert ^ Bedeutung | ||
| | '' | | '' | ||
| Zeile 91: | Zeile 96: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| + | </ | ||
| ===== animation-delay: | ===== animation-delay: | ||
| Mit '' | Mit '' | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| /* Fester Delay pro Element: */ | /* Fester Delay pro Element: */ | ||
| Zeile 103: | Zeile 108: | ||
| .item: | .item: | ||
| </ | </ | ||
| + | </ | ||
| Eleganter mit CSS Custom Properties — der Index wird per '' | Eleganter mit CSS Custom Properties — der Index wird per '' | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| .item { | .item { | ||
| Zeile 113: | Zeile 119: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| In Vue.js kann der Index aus '' | In Vue.js kann der Index aus '' | ||
| + | < | ||
| <code html> | <code html> | ||
| <div | <div | ||
| Zeile 124: | Zeile 130: | ||
| > | > | ||
| </ | </ | ||
| + | </ | ||
| > **Wichtig: | > **Wichtig: | ||
| Zeile 131: | Zeile 137: | ||
| ==== Spinner (Rotation) ==== | ==== Spinner (Rotation) ==== | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| @keyframes spin { | @keyframes spin { | ||
| Zeile 146: | Zeile 152: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| '' | '' | ||
| ==== Bounce Dots ==== | ==== Bounce Dots ==== | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| @keyframes bounce { | @keyframes bounce { | ||
| Zeile 168: | Zeile 174: | ||
| .dot: | .dot: | ||
| </ | </ | ||
| + | </ | ||
| Die '' | Die '' | ||
| Zeile 174: | Zeile 181: | ||
| Eine laufende Animation kann per CSS oder JavaScript pausiert werden: | Eine laufende Animation kann per CSS oder JavaScript pausiert werden: | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| /* Per CSS – z. B. bei Hover: */ | /* Per CSS – z. B. bei Hover: */ | ||
| Zeile 188: | Zeile 195: | ||
| </ | </ | ||
| + | </ | ||
| ===== Performance-Hinweis ===== | ===== Performance-Hinweis ===== | ||
| Animieren Sie wenn immer möglich nur '' | Animieren Sie wenn immer möglich nur '' | ||
| + | <WRAP center round box 80%> | ||
| <code css> | <code css> | ||
| /* ✅ Performant — GPU-beschleunigt: | /* ✅ Performant — GPU-beschleunigt: | ||
| Zeile 205: | Zeile 213: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| ===== Weiterführende Ressourcen ===== | ===== Weiterführende Ressourcen ===== | ||