Les Transitions en CSS3
Une
évolution avec CSS3 était la capacité d'écrire des comportements pour des
transitions et des animations. Les développeurs de front-end ont demandé la
possibilité de concevoir ces interactions au sein de HTML et CSS, sans utiliser
JavaScript ou Flash, depuis des années. Maintenant, leur souhait est devenu
réalité.
Avec
les transitions CSS3, vous avez le potentiel de modifier l'apparence et le
comportement d'un élément chaque fois qu'un changement d'état se produit, par
exemple lorsqu'il survient, concentré, actif ou ciblé.
Les
animations dans CSS3 permettent l'apparition et le comportement d'un élément à
modifier dans plusieurs images clés. Les transitions apportent un changement
d'un état à l'autre, tandis que les animations peuvent définir plusieurs points
de transition sur différentes images clés.
Transitions :
Comme
mentionné, pour qu'une transition se produise, un élément doit avoir un
changement d'état et différents styles doivent être identifiés pour chaque
état. La façon la plus simple pour déterminer les styles pour différents états
est d'utiliser les pseudo-classes cible: flottant,: focus,: active et: target.
Il
existe quatre propriétés liées à la transition au total, y compris la
transition-propriété, la durée de transition, la fonction de transition-temporisation
et la temporisation de transition. Tous ces éléments ne sont pas nécessaires
pour créer une transition, les trois premiers étant les plus populaires.
Dans
l'exemple ci-dessous, la boîte changera sa couleur d'arrière-plan au cours d'une
seconde de manière linéaire
Dans HTml <divclass
=
"box">Box
</div>
.box {
background: #2db34a;
transition-property: background;
transition-duration: 1s;
transition-timing-function: linear;
}
.box:hover {
background: #ff7b29;
}
Propriété transitoire
La
transition-property
propriété
détermine exactement quelles propriétés seront modifiées en conjonction avec
les autres propriétés de transition. Par défaut, toutes les propriétés dans les
différents états d'un élément seront modifiées lors de la modification. Cependant, seules les valeurs
des propriétés identifiées dans la transition-property
qui seront affectées par les transitions.
Dans l'exemple ci-dessus, la propriété
background
est identifiée
dans la valeur transition-property
. Ici, la
propriété background
est la seule
propriété qui changera sur la durée d’une seconde d'une manière linear
. Toute autre propriété incluse lors de
la modification de l'état d'un élément, mais non incluse dans la valeur transition-property
, ne recevra
pas les comportements de transition définis par les propriétés transition-duration
ou transition-timing-function
.
Si plusieurs propriétés doivent être
transférées, elles peuvent être séparées par des virgules dans la valeur
transition-property
. En outre, la valeur du mot-clé all
peut être
utilisée pour transmettre toutes les propriétés d'un élément.<divclass
=
"box">Box
</div>
body {
color:
#fff;
font:
600
14px/
24px
"Open Sans",
"HelveticaNeue-Light",
"Helvetica Neue Light",
"Helvetica Neue",
Helvetica,
Arial,
"Lucida Grande",
Sans-Serif;
}
.box{
background
:
#2db34a;
border-radius
:
6px;
cursor
:
pointer;
height
:
95px;
line-height
:
95px;
text-align
:
center;
transition-property
:
background,
border-radius;
transition-duration
:
1s;
transition-timing-function
:
linear;
width
:
95px;
}
.box:
hover{
background
:
#ff7b29;
border-radius
:
50%;
}
Propriétés de transition
Il est important de noter que toutes les propriétés ne peuvent être transférées , seules les propriétés disposant d'un point de repère identifiable. Les couleurs, les tailles de police et les mêmes peuvent être transférés d'une valeur à l'autre car ils ont des valeurs reconnaissables entre elles. La propriété
display
, par exemple, peut ne pas
être modifiée car elle n'a aucun point médian.
Durée de transition
La durée pendant laquelle une
transition a lieu est définie à l'aide de la propriété
transition-duration
. La valeur de cette propriété peut être
définie en utilisant des valeurs de synchronisation générales, y compris
secondes ( s
) et
millisecondes ( ms
).Ces valeurs de
synchronisation peuvent également se produire dans des mesures fractionnaires, par exemple. .2s
Lors de la transition de plusieurs
propriétés, vous pouvez définir plusieurs durées, une pour chaque propriété. Comme pour la valeur
transition-property
de la
propriété, plusieurs durées peuvent être déclarées à l'aide de valeurs séparées
par des virgules. L'ordre de ces valeurs lors de l'identification des
propriétés et des durées individuelles est important. Par exemple, la première propriété
identifiée dans la propriété transition-property
correspond à la première identifiée
dans la propriété transition-duration
, et ainsi de
suite.
Si plusieurs propriétés sont en
transition avec une seule valeur de durée déclarée, cette valeur sera la durée
de toutes les propriétés de transition.
<divclass
=
"box">Box
</div>
body{
color
:
#fff;
font
:
60014px
/
24px"Open Sans"
,
"HelveticaNeue-Light",
"Helvetica Neue Light",
"Helvetica Neue",
Helvetica,
Arial,
"Lucida Grande",
Sans-Serif;
}
.box{
background
:
#2db34a;
border-radius
:
6px;
cursor
:
pointer;
height
:
95px;
line-height
:
95px;
text-align
:
center;
transition-property
:
background,
border-radius;
transition-duration
:
.2s,
1s;
transition-timing-function
:
linear;
width
:
95px;
}
.box:
hover{
background
:
#ff7b29;
border-radius
:
50%;
}
Calendrier de transition
La propriété
transition-timing-function
sert à
définir la vitesse dans laquelle une transition se déplacera. En
connaissant la durée de la propriété transition-duration
, une
transition peut avoir plusieurs vitesses dans une seule durée. Quelques - unes des valeurs de mots - clés les plus populaires pour la propriété transition-timing-function
comprennent linear
, ease-in
, ease-out
et ease-in-out
.
La valeur
linear
du mot-clé
identifie une transition qui se déplace à une vitesse constante d'un état à
l'autre. La valeur ease-in
identifie une transition qui commence
lentement et accélère tout au long de la transition, tandis que la valeur ease-out
identifie une
transition qui démarre rapidement et ralentie tout au long de la transition. La valeur ease-in-out
identifie une transition
qui commence lentement, accélère au milieu, puis ralentit avant de finir.
Chaque fonction de synchronisation a une courbe cubique-bezier derrière elle, qui peut être
spécifiquement définie en utilisant la valeur
cubic-bezier(x1, y1, x2, y2)
.Des valeurs
supplémentaires incluent step-start
, step-stop
et une valeur steps(number_of_steps,
direction)
identifiée de
manière unique .
Lors de la transition de plusieurs
propriétés, vous pouvez identifier plusieurs fonctions de synchronisation. Ces valeurs de fonction de
synchronisation, comme pour d'autres valeurs de propriété de transition,
peuvent être déclarées comme des valeurs séparées par des virgules.
<divclass
=
"box">Box
</div>
body{
color
:
#fff;
font
:
60014px
/
24px"Open Sans"
,
"HelveticaNeue-Light",
"Helvetica Neue Light",
"Helvetica Neue"
,
Helvetica,
Arial,
"Lucida Grande",
Sans-Serif
;
}
.box{
background
:
#2db34a;
border-radius
:
6px;
cursor
:
pointer;
height
:
95px;
line-height
:
95px;
text-align
:
center;
transition-property
:
background,
border-radius;
transition-duration
:
.2s,
1s;
transition-timing-function
:
linear,
ease-in;
width
:
95px;
}
.box:
hover{
background
:
#ff7b29;
border-radius
:
50%;
}
Retard de transition
En plus la déclaration de la propriété
de transition, la durée et la fonction de temporisation, vous pouvez également
définir un délai avec la propriété
transition-delay
. Le délai définit une valeur de temps, des secondes
ou des millisecondes, ce qui détermine combien de temps une transition doit
être bloquée avant l'exécution. Comme
pour toutes les autres propriétés de transition, pour retarder de nombreuses
transitions, chaque délai peut être déclaré comme une valeur séparée par des
virgules.body{
color
:
#fff;
font
:
60014px
/
24px"Open Sans"
,
"HelveticaNeue-Light",
"Helvetica Neue Light",
"Helvetica Neue"
,
Helvetica,
Arial,
"Lucida Grande",
Sans-Serif
;
}
.box{
background
:
#2db34a;
border-radius
:
6px;
cursor
:
pointer;
height
:
95px;
line-height
:
95px;
text-align
:
center;
transition-property
:
background,
border-radius;
transition-duration
:
.2s,
1s;
transition-timing-function
:
linear,
ease-in;
transition-delay
:
0s,
1s;
width
:
95px;
}
.box:
hover{
background
:
#ff7b29;
border-radius
:
50%;
}
.box
:
hover {
background:
#ff7b29;
border-radius:
50%;
}
Transitions
sténographiques
Déclarer chaque propriété de
transition individuellement peut devenir assez intensive, en particulier avec
les préfixes de fournisseur. Heureusement,
il existe une propriété abrégée
transition
, capable de
supporter toutes ces propriétés et valeurs différentes .En utilisant la seule valeur
transition
, vous pouvez
définir chaque valeur de transition dans l'ordre transition-property
, transition-duration
, transition-timing-function
et enfin transition-delay
. N'utilisez pas de virgules avec ces
valeurs, sauf si vous identifiez de nombreuses transitions.
Pour définir de nombreuses transitions
à la fois, définissez chaque groupe individuel de valeurs de transition, puis
utilisez une virgule pour séparer chaque groupe supplémentaire de valeurs de
transition.
body{
color
:
#fff;
font
:
60014px
/
24px"Open Sans"
,
"HelveticaNeue-Light",
"Helvetica Neue Light",
"Helvetica Neue"
,
Helvetica,
Arial,
"Lucida Grande",
Sans-Serif;
}
.box{
background
:
#2db34a;
border-radius
:
6px;
cursor
:
pointer;
height
:
95px;
line-height
:
95px;
text-align
:
center;
transition
:
background.2s
linear
,
border-radius1s
ease-in
1s
;
width
:
95px;
}
.box:
hover{
background
:
#ff7b29;
border-radius
:
50%;
}
Leave a Comment