HTML Academy · Lezione

Animare SVG con CSS e SMIL

Aggiungere movimento agli elementi SVG con transizioni CSS e SMIL

Lezione 4 di 413 passaggi

Animare SVG con CSS e SMIL è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Transizioni CSS su SVG

Gli attributi di presentazione SVG (fill, stroke, opacity, transform) possono essere animati con le transizioni CSS. Aggiungete una classe e definite la transizione: .icon { transition: fill 200ms ease; } .icon:hover { fill: red; }. Le transizioni CSS funzionano allo stesso modo sugli elementi SVG.

Animazioni CSS con keyframe su SVG

Applicate @keyframes agli elementi SVG: animate stroke-dashoffset per creare effetti di disegno dei path, opacity per la comparsa graduale, transform per movimento e rotazione. La stessa sintassi di animazione utilizzata per gli elementi HTML si applica agli elementi SVG senza modifiche.

@keyframes draw {
  from { stroke-dashoffset: 100; }
  to { stroke-dashoffset: 0; }
}
.path { stroke-dasharray: 100; animation: draw 1s ease forwards; }

Effetto di disegno di un path

La tecnica stroke-dasharray e stroke-dashoffset simula il disegno di un path: impostate dasharray uguale alla lunghezza del path e dashoffset uguale alla lunghezza del path, così il path risulta invisibile; quindi animate dashoffset fino a 0. Il tratto sembra disegnarsi da solo dall'inizio alla fine.

Ottenere la lunghezza del path

path.getTotalLength() restituisce la lunghezza del path nelle unità utente SVG. Utilizzate questo valore sia per stroke-dasharray sia per il valore iniziale di stroke-dashoffset. In questo modo l'animazione funziona correttamente indipendentemente dalla complessità o dalla lunghezza del path.

transform CSS su SVG

I browser moderni supportano transform CSS sugli elementi SVG. Negli elementi SVG, transform-origin è impostato per impostazione predefinita sull'angolo superiore sinistro dell'SVG, non al centro dell'elemento come in HTML. Specificate transform-box: fill-box per rendere transform-origin relativo al riquadro di delimitazione dell'elemento.

.spinner {
  transform-box: fill-box;
  transform-origin: center;
  animation: rotate 1s linear infinite;
}

Animazioni SMIL

SMIL (Synchronized Multimedia Integration Language) è il sistema di animazione integrato di SVG. L'elemento animate modifica i valori degli attributi nel tempo. SMIL non richiede JavaScript né CSS: le animazioni sono completamente dichiarative all'interno del markup SVG.

<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"> ruota un elemento attorno a un punto centrale specificato usando la sintassi SMIL.

animateMotion

<animateMotion> sposta un elemento lungo un path SVG. Fate riferimento a un path con mpath oppure inserite i dati del path direttamente. L'elemento segue automaticamente la curva del path: è utile per percorsi di movimento complessi senza dover calcolare manualmente le coordinate.

Compromessi tra CSS e SMIL

Animazioni CSS: supportate da tutti i browser moderni, integrate con la cascata CSS e più facili da controllare tramite JavaScript (mettere in pausa, invertire). SMIL: contenuto autonomo nel markup SVG, funziona nei file SVG statici senza accesso al CSS, ed è dichiarativo ed espressivo per le animazioni che seguono un path.

Morphing dei path SVG

Animate tra due forme di path: i path devono avere lo stesso numero di comandi e una struttura compatibile. L'animazione CSS anima la proprietà d (Chrome 88+, Firefox 72+): @keyframes { to { d: path("M...") } } per il morphing nativo dei path tramite CSS.

Accessibilità delle animazioni SVG

Aggiungete la media query prefers-reduced-motion per disabilitare o semplificare le animazioni SVG per gli utenti a cui il movimento provoca disagio. Le animazioni decorative devono essere completamente disabilitate; quelle significative, come gli stati di caricamento, devono essere semplificate anziché interrotte.

Verifica delle conoscenze

In che modo la tecnica stroke-dasharray e stroke-dashoffset crea un'animazione di disegno di un path?

Riepilogo

L'animazione SVG utilizza transizioni CSS e keyframe per effetti basati sulle proprietà, la tecnica stroke-dasharray/dashoffset per il disegno dei path, animate/animateTransform/animateMotion di SMIL per animazioni dichiarative all'interno di SVG e prefers-reduced-motion per l'accessibilità. CSS e SMIL sono complementari: scegliete in base alla necessità di integrare la cascata CSS o di mantenere portatile un file autonomo.

Gratis per iniziare

Impara HTML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
40
Lezioni
159

Domande Frequenti

La lezione «Animare SVG con CSS e SMIL» è gratuita?

Sì — il testo completo di «Animare SVG con CSS e SMIL» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «Animare SVG con CSS e SMIL»?

Aggiungere movimento agli elementi SVG con transizioni CSS e SMIL Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Animare SVG con CSS e SMIL»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. SVG inline a confronto con img e object
  2. Forme SVG di base: rect circle path
  3. viewBox SVG e ridimensionamento responsive
  4. Animare SVG con CSS e SMIL
← Torna a HTML Academy