"Sono stato bocciato a parecchi esami. Un mio amico invece, li ha passati tutti a pieni voti. Ora è ingegnere e lavora in Microsoft. Io sono il proprietario."  - Bill Gates  •  "Se riesco a fare qualcosa in 10 minuti, è perché ho passato anni a studiarlo."  - Bill Gates  •  "Il vostro lavoro riempirà gran parte della vostra vita, e l'unico modo per essere veramente soddisfatti è fare ciò che ritenete sia un grande lavoro."  - Steve Jobs  •  "Siate affamati. Siate folli."  - Steve Jobs  •  

cinque 

ZERO

{CSS} Le transizioni

home / css /

Lucio Asciolla

Full Stack Developer

Indice

Con le proprietà css di transizione è possibile attribuire ad un elemento diversi valori, quello iniziale e quello finale, determinare la durata temporale, della transizione stessa, ed indicarne la modalità di innesco attraverso le pseudo-classi.

Questo è possibile attraverso l'utilizzo delle seguenti proprietà:

transition-propertyindica la proprietà o le proprietà che dovra subire la transizione
transition-durationindicare la durata temporale della transizione
transition-delayimpostre un ritardo alla partenza della transizione
transition-timing-functioneffetti di transizione

transition-property & transition-duration

La prima proprietà serve ad impostare la o le proprietà che dovranno subire la transizione la seconda ad indicare la durata temporale di transizione

div {
width: 200px;
height: 200px;
background-color: 98d925#;
transition-property: background-color;
transition-duration: 2s;
}
div:hover {
background-color: #ff5c00;
}

E' possibile indicare, mediante la proprietà transition-propriety: di intervenire su più proprietà contemporaneamente

div {
width: 400px;
height: 400px;
background: blu;
transition-property: background, width; /* Abbiamo indicato di applicare la transizione su due proprietà background e width separate dal segno ","*/
transition-duration: 3s;
}
div:hover {
background-color: red;
width: 600px;
}

Combinare le transizioni

È possibile assegnare una durata e/o un valore di ritardo ad ogni singola proprietà indipendente dalle altre

div {
transition-property: background, width, height;
transition-duration: 5s, 10s, 2s;
transition-delay: 0s, 0s, 4s;
}

transition-delay:

Con questa proprietà è possibile impostare un ritardo all'esecuzione effettiva della transizione

div {
width: 400px;
height: 400px;
background: blu;
transition-property: background, width; 
transition-duration: 3s;
transition-delay: 5s; /* Ritardiamo la partenza di 5 secondi*/
}

div:hover {
background-color: red;
width: 600px;
}

transition-timing-function:

Questa proprietà definisce la ripartizione del tempo, ovvero, anziché utilizzare una ripartizione lineare del tempo è possibile utilizzare delle funzioni, attivabili dai valori possibili della proprietà, che ne cambiano la velocità di transizione generando dei veri e propri "effetti" ( basati sulla Curva di Bèzier )

Note: il tempo di transizione totale rimane il medesimo per tutte le funzioni/effetti

Valori possibili:

ease
linear
ease-in
ease-out
ease-in-out
cubic-bezier
Note: Con il valore cubic-beizer è possibile realizzare funzioni/effetti personalizzati  

transition-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1);    - Divisione del tempo di transizione -
div {
..
...
transition-timing-function: ease-in; }

Compatibilità tra i vari browser

Le transizioni non sono supportate nativamente dalla totalità dei browser ma ognuno fornisce la sua alternativa proprietaria che consente di incominciare ad utilizzare tali proprietà

div {
width: 400px;
height: 400px;
background: blu;

transition-property: background-color; /*PROPRIETA' STANDARD*/
transition-duration: 2s;

-webkit-transition-property: background-color; /*SAFARI E CHROME*/
-webkit-transition-duration: 2s;

-o-transition-property: background-color; /*OPERA*/
-o-transition-duration: 2s;

-moz-transition-property: background-color; /*FIREFOX*/
-moz-transition-duration: 2s;
}

div:hover {
background: red;
}
Argomenti collegati