Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Transizioni e trasformazioni SVG con CSS

Usare transition e transform per modificare gradualmente valori per forme ed effetti in un intervallo di tempo, in risposta allo scatenarsi di un evento.
Usare transition e transform per modificare gradualmente valori per forme ed effetti in un intervallo di tempo, in risposta allo scatenarsi di un evento.
Link copiato negli appunti

Invece di cambiare bruscamente il valore di una proprietà, le transition permettono di passare gradatamente, in un certo intervallo di tempo, da un valore iniziale ad un valore finale.

Transition

La proprietà transition viene generalmente utilizzata in combinazione con la pseudo-classe :hover, in modo da animare gli oggetti al passaggio del mouse, come nell'esempio che segue:

<style>
.hoversquare{
	fill: #cd3512;
	stroke: #000000;
	stroke-width: 4;
	cursor: pointer;
	transition: all 1s ease-in-out;
}
.hoversquare:hover{
	fill: #FF0000;
	stroke: #0000FF;
}
</style>
<g id="layer4">
	<rect width="100" height="100" x="340" y="10" class="hoversquare" />
</g>

I colori dello sfondo e del contorno del quadrato cambieranno, al passaggio del mouse, in una transizione della durata di un secondo.

SVG transition

Transform

Allo stesso modo è possibile utilizzare la proprietà transform per modificare la forma degli oggetti. Nell'esempio che segue, il quadrato viene ruotato e scalato:

<style>
.transformedsquare {
	fill: #cd3512;
	fill-opacity: 1;
	stroke: #000000;
	stroke-width: 4;
	stroke-opacity: 1;
	cursor: pointer;
	transition: all 1s ease-in-out;
}
.transformedsquare:hover{
	fill: #FF0000;
	stroke: #0000FF;
	-webkit-transform: scale(1.1) rotate(10deg);
	-moz-transform: scale(1.1) rotate(10deg);
	transform: scale(1.1) rotate(10deg);
	-webkit-transform-origin: 500px 60px;
	-moz-transform-origin: 500px 60px;
	transform-origin: 500px 60px;
}
</style>
<rect width="100" height="100" x="450" y="20" class="transformedsquare" />

La GIF che segue mostra l'animazione dell'oggetto al passaggio del mouse.

SVG transform

Sfruttare le Media Query

Trattandosi di grafica vettoriale, SVG è già di per sé una delle soluzioni più efficienti per la progettazione di pagine e applicazioni web sensibili alla risoluzione dello schermo. Tuttavia, combinando le caratteristiche vettoriali con un'altra funzionalità di CSS3, le media query, l'adattabilità alla periferica diventa assoluta. Infatti, oltre a variare le dimensioni dell'oggetto senza perdita di qualità, con le media query diventa possibile modificare i valori di ogni singola proprietà dell'elemento.

Ad esempio, si può nascondere un elemento sugli schermi di dimensioni inferiori ai 640px:

<style>
@media only screen and (max-width: 640px) {
	.square {
		display: none;
	}
}
</style>

Ma la risoluzione video non è l'unica variabile accettata dalle media query. Ad esempio, si può eliminare il colore di riempimento del nostro quadrato nell'output a stampa:

@media only print {
	.transformedsquare {
		fill: none;
		stroke: #000000;
	}
}

L'immagine mette a confronto l'output a video e l'output a stampa della stessa immagine SVG

Screen and print

Riferimenti

Abbiamo passato in rassegna le tecniche essenziali per sfruttare al massimo le potenzialità della tecnologie SVG utilizzata in combinazione con i fogli di stile. Le funzionalità introdotte dai nuovi standard CSS3, inoltre, permettono di elaborare soluzioni multimediali e adattive estremamente efficienti in termini di consumo di risorse. Nei prossimi capitoli si esploreranno alcune di queste soluzioni con esempi concreti e codice pronto all'uso.

Di seguito i riferimenti per approfondire l'analisi:

Ti consigliamo anche