SVG animeren met CSS en SMIL
Voeg beweging toe aan SVG-elementen met CSS-transities en SMIL
SVG animeren met CSS en SMIL is een gratis HTML Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject HTML Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus HTML Academy bevat in totaal 4 lessen.
CSS-overgangen op SVG
SVG-presentatieattributen (fill, stroke, opacity, transform) kunnen met CSS-overgangen worden geanimeerd. Voeg een klasse toe en definieer de overgang: .icon { transition: fill 200ms ease; } .icon:hover { fill: red; }. CSS-overgangen werken op dezelfde manier voor SVG-elementen.
CSS-keyframe-animaties op SVG
Pas @keyframes toe op SVG-elementen: animeer stroke-dashoffset voor effecten waarbij een path wordt getekend, opacity voor infaden en transform voor verplaatsing en rotatie. Dezelfde animatiesyntaxis als voor HTML-elementen geldt zonder aanpassingen voor SVG-elementen.
@keyframes draw {
from { stroke-dashoffset: 100; }
to { stroke-dashoffset: 0; }
}
.path { stroke-dasharray: 100; animation: draw 1s ease forwards; }Tekeneffect voor path
De techniek met stroke-dasharray en stroke-dashoffset simuleert het tekenen van een path: stel dasharray gelijk aan de padlengte, stel dashoffset in op de padlengte (onzichtbaar) en animeer dashoffset vervolgens naar 0. De lijn lijkt dan van het begin tot het einde te worden getekend.
Lengte van path ophalen
path.getTotalLength() geeft de lengte van path terug in SVG-gebruikerseenheden. Gebruik deze waarde voor zowel stroke-dasharray als de aanvankelijke stroke-dashoffset. Zo werkt de animatie correct, ongeacht de complexiteit of lengte van path.
CSS-transform op SVG
Moderne browsers ondersteunen CSS transform op SVG-elementen. transform-origin staat bij SVG-elementen standaard op de linkerbovenhoek van de SVG, niet op het midden van het element zoals bij HTML. Geef transform-box: fill-box op om transform-origin relatief aan de begrenzende box van het element te maken.
.spinner {
transform-box: fill-box;
transform-origin: center;
animation: rotate 1s linear infinite;
}SMIL-animaties
SMIL (Synchronized Multimedia Integration Language) is het ingebouwde animatiesysteem van SVG. Het animate-element wijzigt attribuutwaarden in de loop van de tijd. Voor SMIL zijn JavaScript of CSS niet nodig: animaties zijn volledig declaratief binnen de SVG-opmaak.
<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"> draait een element rond een opgegeven middelpunt met SMIL-syntaxis.
animateMotion
<animateMotion> verplaatst een element langs een SVG-pad. Verwijs naar een path met mpath of voeg path-gegevens inline toe. Het element volgt de kromme van het path automatisch — handig voor complexe bewegingspaden zonder handmatige berekening van coördinaten.
Afwegingen tussen CSS en SMIL
CSS-animaties: worden ondersteund in alle moderne browsers, zijn geïntegreerd in de CSS-cascade en zijn eenvoudiger via JavaScript te besturen (pauzeren, omkeren). SMIL: staat zelfstandig in de SVG-opmaak, werkt in statische SVG-bestanden zonder toegang tot CSS en is declaratief en expressief voor animaties die een pad volgen.
Vormovergangen tussen SVG-paths
Animeer tussen twee path-vormen: de paths moeten hetzelfde aantal opdrachten en een compatibele structuur hebben. De CSS-animatie animeert de eigenschap d (Chrome 88+, Firefox 72+): @keyframes { to { d: path("M...") } } voor ingebouwde CSS-vormovergangen van paths.
Toegankelijkheid van SVG-animatie
Voeg de mediaquery prefers-reduced-motion toe om SVG-animaties uit te schakelen of eenvoudiger te maken voor gebruikers die beweging onprettig vinden. Decoratieve animaties moeten volledig worden uitgeschakeld; betekenisvolle animaties, zoals laadstatussen, moeten worden vereenvoudigd in plaats van gestopt.
Kennistoets
Hoe zorgt de techniek met stroke-dasharray en stroke-dashoffset voor een animatie waarbij een path wordt getekend?
Samenvatting
SVG-animatie gebruikt CSS-overgangen en keyframes voor effecten op basis van eigenschappen, de techniek met stroke-dasharray en stroke-dashoffset voor het tekenen van paths, SMIL animate/animateTransform/animateMotion voor declaratieve animatie in SVG en prefers-reduced-motion voor toegankelijkheid. CSS en SMIL vullen elkaar aan: kies op basis van de vraag of de SVG integratie met de CSS-cascade of zelfstandig gebruik in SVG-bestanden nodig heeft.
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “SVG animeren met CSS en SMIL” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “SVG animeren met CSS en SMIL”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus HTML Academy bevat in totaal 4 lessen.
Wat leer ik in “SVG animeren met CSS en SMIL”?
Voeg beweging toe aan SVG-elementen met CSS-transities en SMIL Je oefent met HTML Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met HTML Academy te beginnen?
Ervaring vooraf is niet nodig. HTML Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “SVG animeren met CSS en SMIL”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over HTML Academy?
Ja. Elke les over HTML Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Inline SVG versus img en object
- Basis-SVG-vormen: rect circle path
- SVG viewBox en responsief schalen
- SVG animeren met CSS en SMIL