🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Transizioni in CSS

Codegrind Team•Jul 22 2023

Le transizioni CSS permettono di cambiare in modo fluido i valori delle proprietĂ , con una durata specifica.

Ecco una lista delle proprietĂ  legate alle transizioni:

  • transition
  • transition-delay
  • transition-duration
  • transition-property
  • transition-timing-function

Come creare una Transizione

Per creare un effetto di transizione, devi specificare due cose:

  • la proprietĂ  CSS a cui vuoi aggiungere un effetto
  • la durata dell’effetto
div {
  width: 100px;
  height: 100px;
  background: red;
  transition: width 2s;
}

L’effetto di transizione inizierà quando la proprietà CSS specificata (larghezza) cambierà valore.

Ora, specifichiamo un nuovo valore per la proprietà larghezza quando un utente passa il mouse sull’elemento <div>:

div:hover {
  width: 300px;
}

Nota che quando il cursore esce dall’elemento, esso tornerà gradualmente al suo stile originale.

Cambia re piĂą ProprietĂ 

L’esempio seguente aggiunge un effetto di transizione sia per la proprietà larghezza che per l’altezza, con una durata di 2 secondi per la larghezza e 4 secondi per l’altezza:

div {
  transition: width 2s, height 4s;
}

Curva di VelocitĂ  della Transizione

La proprietà transition-timing-function specifica la curva di velocità dell’effetto di transizione.

La proprietà transition-timing-function può avere i seguenti valori:

  • ease - specifica un effetto di transizione con un inizio lento, poi veloce, poi fine lento (predefinito)
  • linear - specifica un effetto di transizione con la stessa velocitĂ  dall’inizio alla fine
  • ease-in - specifica un effetto di transizione con un inizio lento
  • ease-out - specifica un effetto di transizione con una fine lenta
  • ease-in-out - specifica un effetto di transizione con un inizio e una fine lenti
  • cubic-bezier(n,n,n,n) - ti permette di definire i tuoi valori in una funzione cubic-bezier
h1 {
  transition-timing-function: linear;
}
h2 {
  transition-timing-function: ease;
}
h3 {
  transition-timing-function: ease-in;
}
h4 {
  transition-timing-function: ease-out;
}
h5 {
  transition-timing-function: ease-in-out;
}

Ritardare l’Effetto della Transizione

La proprietà transition-delay specifica un ritardo in secondi per l’effetto di transizione.

L’esempio seguente ha un ritardo di 1 secondo prima dell’inizio:

div {
  transition-delay: 1s;
}

Transizione + Trasformazione

L’esempio seguente aggiunge un effetto di transizione alla trasformazione:

div {
  transition: width 2s, height 2s, transform 2s;
}

Altri Esempi di Transizione

Le proprietĂ  di transizione CSS possono essere specificate una per una, in questo modo:

div {
  transition-property: width;
  transition-duration: 2s;
  transition-timing-function: linear;
  transition-delay: 1s;
}

oppure usando la proprietĂ  abbreviata transition:

div {
  transition: width 2s linear 1s;
}