Transitions

Les transitions permettent aux changements de valeur de propriétés de se produire en douceur sur une durée spécifiée.
Elles se déclarent sur l’état initial de l’élément, et sont appliquées lorsque les valeurs des propriétés changent, par exemple au focus ou même au changement de classe de l’élément.
Il y a environ 50 propriétés qui peuvent être transitionnées


transition-property

Définit sur quelle propriété s’applique la transition [CSS3]

transition-property: all | <property> | none

JSFiddle transition


transition-duration

Définit la durée de la transition [CSS3]

transition-duration: <time>

transition-timing-function

Définit le comportement de la transition [CSS3]

transition-timing-function: ease | linear | ease-in | ease-out | ease-in-out |
                            step-start | step-end | steps(<n>[,start|end]) |
                            cubic-bezier(<x1>,<y1>,<x2>,<y2>)

Par défaut, les transitions commencent lentement, accélèrent, puis ralentissent un peu avant de terminer - c’est le timing ease. Il est possible de modifier ce comportement en utilisant une autre fonction, ou en définissant soi-même le comportement de la transition via cubic-bezier(). On peut également créer une animation frame par frame, à la manière d’un GIF, avec steps()

Valeur Description
ease Commence lentement, accèlère puis ralentit (par défaut)
linear Vitesse constante
ease-in Commence lentement puis accèlère
ease-out Commence rapidement puis ralentit
ease-in-out Similaire à ease mais plus rapide au milieu
cubic-bezier(x1,y1,x2,y2) Timing personnalisé
steps(<integer>, [start \| end]) Avancer par saccades
step-start Équivaut à steps(1, start)
step-end Équivaut à steps(1, end)

transition-delay

Définit un délai entre le déclenchement et la transition [CSS3]
0 par défaut

transition-delay: <time>

Le délai peut être utilisé pour démarrer une animation après une autre.
JSFiddle transition-delay


transition

Est un raccourci pour les propriétés précédentes [CSS3]

transition: <property> <duration> [<timing-function>] [<delay>]

Exemple:

{
  background-color: orange;
  transition: background 1s;

  &:hover {
    background-color: blue;
  }
}

Multiples transitions :

Une transition peut porter sur une propriété en particulier ou toutes.
Pour appliquer différentes transitions sur différentes propriétés, les définir séparées par une virgule.

transition: background 1s, opacity 0.5s 0.5s;

Est équivalent à

transition-property: background, opacity;
transition-duration: 1s, 0.5s;
transition-delay: 0s, 0.5s;