SVG mit CSS und SMIL animieren
Verleihen Sie SVG-Elementen mit CSS-Übergängen und SMIL Bewegung
SVG mit CSS und SMIL animieren ist eine kostenlose HTML Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des HTML Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.
CSS-Übergänge bei SVG
SVG-Darstellungsattribute wie fill, stroke, opacity und transform können mit CSS-Übergängen animiert werden. Fügen Sie eine Klasse hinzu und definieren Sie den Übergang: .icon { transition: fill 200ms ease; } .icon:hover { fill: red; }. CSS-Übergänge funktionieren bei SVG-Elementen genauso wie bei HTML-Elementen.
CSS-Keyframe-Animationen bei SVG
Wenden Sie @keyframes auf SVG-Elemente an: Animieren Sie stroke-dashoffset für Zeicheneffekte bei Pfaden, opacity für Einblendungen und transform für Bewegungen und Drehungen. Die für HTML-Elemente verwendete Animationssyntax gilt ohne Änderungen auch für SVG-Elemente.
@keyframes draw {
from { stroke-dashoffset: 100; }
to { stroke-dashoffset: 0; }
}
.path { stroke-dasharray: 100; animation: draw 1s ease forwards; }Pfadzeicheneffekt
Die Technik mit stroke-dasharray und stroke-dashoffset simuliert das Zeichnen eines Pfads: Setzen Sie dasharray auf die Pfadlänge, dashoffset auf die Pfadlänge (unsichtbar), und animieren Sie dashoffset anschließend auf 0. Dadurch scheint der Strich vom Anfang bis zum Ende gezeichnet zu werden.
Pfadlänge ermitteln
path.getTotalLength() gibt die Länge des Pfads in SVG-Benutzereinheiten zurück. Verwenden Sie diesen Wert sowohl für stroke-dasharray als auch für den anfänglichen Wert von stroke-dashoffset. So funktioniert die Animation unabhängig von der Komplexität oder Länge des Pfads korrekt.
CSS transform bei SVG
Moderne Browser unterstützen CSS transform bei SVG-Elementen. transform-origin ist bei SVG-Elementen standardmäßig die obere linke Ecke des SVG – nicht die Mitte des Elements wie bei HTML. Geben Sie transform-box: fill-box an, damit sich transform-origin auf die Begrenzungsbox des Elements bezieht.
.spinner {
transform-box: fill-box;
transform-origin: center;
animation: rotate 1s linear infinite;
}SMIL-Animationen
SMIL (Synchronized Multimedia Integration Language) ist das integrierte Animationssystem von SVG. Das animate-Element ändert Attributwerte im Laufe der Zeit. SMIL benötigt weder JavaScript noch CSS – Animationen werden vollständig deklarativ im SVG-Markup definiert.
<circle r="20">
<animate attributeName="r" from="20" to="40" dur="1s" repeatCount="indefinite"/>
</circle>animateTransform
<animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="2s" repeatCount="indefinite"> dreht ein Element mithilfe der SMIL-Syntax um einen festgelegten Mittelpunkt.
animateMotion
<animateMotion> bewegt ein Element entlang eines SVG-Pfads. Referenzieren Sie einen Pfad mit mpath oder fügen Sie die Pfaddaten direkt ein. Das Element folgt der Pfadkurve automatisch – hilfreich für komplexe Bewegungspfade ohne manuelle Berechnung von Koordinaten.
CSS vs. SMIL: Vor- und Nachteile
CSS-Animationen: werden von allen modernen Browsern unterstützt, sind in die CSS-Kaskade integriert und lassen sich leichter per JavaScript steuern (anhalten, umkehren). SMIL: ist im SVG-Markup enthalten, funktioniert in statischen SVG-Dateien ohne Zugriff auf CSS und ist deklarativ sowie ausdrucksstark bei Animationen entlang von Pfaden.
Morphing von SVG-Pfaden
Animieren Sie den Übergang zwischen zwei Pfadformen: Die Pfade müssen dieselbe Anzahl von Befehlen und eine kompatible Struktur haben. Die CSS-Animation animiert die Eigenschaft d (Chrome 88+, Firefox 72+): @keyframes { to { d: path("M...") } } für natives Pfad-Morphing mit CSS.
Barrierefreiheit bei SVG-Animationen
Fügen Sie eine prefers-reduced-motion-Media-Query hinzu, um SVG-Animationen für Personen, die Bewegung als unangenehm empfinden, zu deaktivieren oder zu vereinfachen. Dekorative Animationen sollten vollständig deaktiviert werden; bedeutungsvolle Animationen wie Ladezustände sollten vereinfacht und nicht vollständig angehalten werden.
Wissenscheck
Wie erzeugt die Technik mit stroke-dasharray und stroke-dashoffset eine Animation, bei der ein Pfad gezeichnet wird?
Zusammenfassung
SVG-Animationen verwenden CSS-Übergänge und Keyframes für eigenschaftsbasierte Effekte, die Technik mit stroke-dasharray/dashoffset für Zeicheneffekte bei Pfaden, SMIL animate/animateTransform/animateMotion für deklarative Animationen innerhalb des SVGs sowie prefers-reduced-motion für Barrierefreiheit. CSS und SMIL ergänzen sich – wählen Sie je nachdem, ob das SVG in die CSS-Kaskade integriert werden oder als eigenständige Datei portierbar sein soll.
Häufig gestellte Fragen
Ist die Lektion „SVG mit CSS und SMIL animieren“ kostenlos?
Ja — der vollständige Text von „SVG mit CSS und SMIL animieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des HTML Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „SVG mit CSS und SMIL animieren“?
Verleihen Sie SVG-Elementen mit CSS-Übergängen und SMIL Bewegung Du übst HTML Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um HTML Academy zu starten?
Keine Vorkenntnisse erforderlich. HTML Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „SVG mit CSS und SMIL animieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser HTML Academy-Lektion Code schreiben und ausführen?
Ja. Jede HTML Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Inline-SVG gegenüber img und object
- Grundlegende SVG-Formen: rect circle path
- SVG viewBox und responsive Skalierung
- SVG mit CSS und SMIL animieren