Propriétés CSS liées à l'animation
Cet article explique les propriétés CSS liées aux animations.
Vous pouvez apprendre l'utilisation et la syntaxe des propriétés @keyframes
, animation
et transition
.
YouTube Video
HTML pour l'aperçu
css-animation.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-animation.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Animation Related Properties</h2>
20 </header>
21 <article>
22 <h3>@keyframes</h3>
23 <section>
24 <h4>Animation Examples</h4>
25 <header><h4>animation: slide 3s ease infinite</h4></header>
26 <section class="sample-view">
27 <div class="box-animation-slide">Slide Box</div>
28 </section>
29 <header><h4>animation: color-change 3s ease infinite</h4></header>
30 <section class="sample-view">
31 <div class="box-animation-color-change">Color Change Box</div>
32 </section>
33 <header><h4>animation: fade 3s ease infinite</h4></header>
34 <section class="sample-view">
35 <div class="box-animation-fade">Fade Box</div>
36 </section>
37 </section>
38 </article>
39 <article>
40 <h3>animation</h3>
41 <section>
42 <h4>Animation Examples</h4>
43 <header><h4>animation: slide 3s ease-in-out infinite</h4></header>
44 <section class="sample-view">
45 <div class="box-animation-ease-in-out">Slide Box</div>
46 </section>
47 <header><h4>animation: color-change 3s ease-in-out 1s 3 alternate</h4></header>
48 <section class="sample-view">
49 <div class="box-animation-alternate">Color Change Box</div>
50 </section>
51 </section>
52 </article>
53 <article>
54 <h3>transition</h3>
55 <section>
56 <h4>Transition Examples</h4>
57 <header><h4>transition: background-color 2s ease</h4></header>
58 <section class="sample-view">
59 <div class="transition-box">Hover me!</div>
60 </section>
61 <header><h4>transition: background-color 5s ease, width 0.5s ease-in</h4></header>
62 <section class="sample-view">
63 <div class="transition-2-properties">Hover me!</div>
64 </section>
65 </section>
66 </article>
67 </main>
68</body>
69</html>
Animation & Transition
Règle @keyframes
1/* Animation definition */
2@keyframes slide {
3 0% {
4 transform: translateX(0);
5 }
6 50% {
7 transform: translateX(200px);
8 }
9 100% {
10 transform: translateX(0);
11 }
12}
13
14/* Apply the animation */
15.box-animation-slide {
16 width: 100px;
17 height: 100px;
18 background-color: skyblue;
19 animation: slide 3s ease infinite;
20}
@keyframes
est utilisé dans les animations CSS pour spécifier comment les styles changent au cours de l'animation. Dans @keyframes
, les changements de style du début à la fin de l'animation sont spécifiés par des pourcentages de temps ou des mots-clés (from
et to
).
- Voici un exemple d'animation où un élément glisse de gauche à droite et revient à sa position d'origine.
- Dans cet exemple,
slide
est écrit après@keyframes
, définissant une animation nomméeslide
. 0%
est le début de l'animation, avectranslateX(0)
positionnant l'élément à son emplacement d'origine.50%
correspond au milieu de l'animation, où l'élément se déplace de 200px vers la droite grâce àtranslateX(200px)
.100%
est la fin de l'animation, où l'élément revient à sa position initiale.- Dans la classe
box-animation-slide
, la propriétéanimation
est utilisée pour appliquer l'animationslide
à intervalles de 3 secondes.
1@keyframes color-change {
2 0% {
3 background-color: red;
4 }
5 25% {
6 background-color: blue;
7 }
8 50% {
9 background-color: green;
10 }
11 75% {
12 background-color: yellow;
13 }
14 100% {
15 background-color: red;
16 }
17}
18
19.box-animation-color-change {
20 width: 100px;
21 height: 100px;
22 background-color: skyblue;
23 animation: color-change 3s ease infinite;
24}
- Vous pouvez contrôler avec précision les styles au cours d'une animation. En spécifiant des pourcentages, vous pouvez appliquer différents styles à des moments arbitraires.
- Dans cet exemple, la couleur change progressivement du rouge au bleu, au vert, au jaune, puis revient au rouge.
1@keyframes fade {
2 from {
3 opacity: 0;
4 }
5 to {
6 opacity: 1;
7 }
8}
9
10.box-animation-fade {
11 width: 100px;
12 height: 100px;
13 background-color: blue;
14 animation: fade 3s ease infinite;
15}
- Dans cet exemple,
from
équivaut à0%
etto
équivaut à100%
. Cela vous permet de définir des animations simples.
Syntaxe de base
1@keyframes animation-name {
2 0% {
3 /* Style at the start */
4 }
5 50% {
6 /* Style at the midpoint */
7 }
8 100% {
9 /* Style at the end */
10 }
11}
animation-name
: Le nom de l'animation. Ceci est spécifié à l'aide de la propriétéanimation
ou de la propriétéanimation-name
.- Pourcentages ou mots-clés : Utilisez des pourcentages de
0%
à100%
, ou les mots-clésfrom
(équivalent à0%
) etto
(équivalent à100%
).
Propriété animation
1.box-animation-ease-in-out {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: slide 3s ease-in-out infinite;
6}
La propriété animation
est utilisée pour appliquer des animations à un élément. Les animations définissent comment un ensemble de styles CSS évolue au fil du temps. Avec la propriété animation
, vous pouvez contrôler le timing, le comportement, le délai, le nombre de répétitions, et bien plus encore d'une animation.
- La classe
box-animation-ease-in-out
spécifieslide
commeanimation-name
et utilise l'animationslide
définie dans@keyframes
.3s
est la durée de l'animation (animation-duration
), ce qui signifie que chaque cycle d'animation est complété en 3 secondes.ease-in-out
est la fonction de synchronisation de l'animation (animation-timing-function
), ce qui fait que l'animation commence lentement, accélère, puis ralentit à nouveau à la fin.infinite
est le nombre de répétitions de l'animation (animation-iteration-count
), ce qui signifie que l'animation se reproduira indéfiniment.
1.box-animation-alternate {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: color-change 3s ease-in-out 1s 3 alternate;
6}
- La classe
box-animation-alternate
spécifiecolor-change
commeanimation-name
et utilise l'animationcolor-change
définie dans@keyframes
.1s
, qui suitease-in-out
, est le délai d'animation (animation-delay
), indiquant le délai avant le début de l'animation. L'animation commencera 1 seconde plus tard.3
, qui suit1s
, est le nombre de répétitions de l'animation (animation-iteration-count
), ce qui signifie que l'animation se répète 3 fois.alternate
est la direction de l'animation (animation-direction
), spécifiant la direction de lecture de l'animation.alternate
spécifie que l'animation se joue de manière alternée.
Composition de la propriété animation
La propriété animation
est une propriété raccourcie qui combine plusieurs sous-propriétés en une seule. Voici les principales sous-propriétés :.
- Propriété
animation-name
: spécifie le nom de l'animation à appliquer. Elle doit correspondre au nom de l'animation définie dans@keyframes
. - Propriété
animation-duration
: spécifie le temps nécessaire pour que l'animation complète un cycle. Les unités de temps sont les secondes (s
) ou les millisecondes (ms
). - Propriété
animation-timing-function
: spécifie la courbe de vitesse de l'animation. Des valeurs telles queease
,linear
,ease-in
,ease-out
,ease-in-out
, etc. sont utilisées.- Spécifier
ease
fait commencer lentement l'animation, puis elle accélère avant de ralentir à nouveau à la fin. - Spécifier
linear
fait progresser l'animation à une vitesse constante du début à la fin. - Indiquer
ease-in
commence l'animation lentement et la termine rapidement. - Indiquer
ease-out
commence l'animation rapidement et la termine lentement. - Indiquer
ease-in-out
commence lentement, progresse rapidement et se termine lentement.
- Spécifier
- La propriété
animation-delay
spécifie le délai avant que l'animation ne commence. L'unité de temps est soit la seconde, soit la milliseconde. - La propriété
animation-iteration-count
spécifie le nombre de fois que l'animation doit se répéter. Indiquerinfinite
répétera l'animation indéfiniment. - La propriété
animation-direction
spécifie la direction de la lecture de l'animation. Les options incluentnormal
(direction normale),reverse
(en arrière),alternate
(lecture alternée) etalternate-reverse
(lecture alternée en commençant par l'arrière). - La propriété
animation-fill-mode
spécifie l'état de l'animation avant qu'elle ne commence et après qu'elle se termine. Vous pouvez spécifiernone
,forwards
,backwards
ouboth
. - La propriété
animation-play-state
spécifie si l'animation est en cours d'exécution ou en pause. Vous pouvez spécifierrunning
oupaused
.
Résumé
La propriété animation
est un outil puissant pour modifier dynamiquement le style des éléments. En utilisant @keyframes
, vous pouvez définir comment les styles changent au fil du temps et contrôler le comportement détaillé de l'animation avec chaque sous-propriété de animation
.
Propriété transition
1.transition-box {
2 background-color: lightgray;
3 transition: background-color 2s ease;
4}
5
6.transition-box:hover {
7 background-color: steelblue;
8}
9
10.transition-2-properties {
11 background-color: lightgray;
12 width: 150px;
13 height: 50px;
14 transition: background-color 5s ease, width 0.5s ease-in;
15}
16
17.transition-2-properties:hover {
18 background-color: blue;
19 width: 250px;
20}
La propriété transition
est utilisée pour appliquer des effets d'animation aux modifications de style CSS. Elle permet aux changements d'apparaître de manière fluide durant des changements d'état comme hover
, focus
, active
, ou lorsque les styles sont modifiés dynamiquement par JavaScript.
Voyons un exemple de la classe transition-box
où la couleur d'arrière-plan change en douceur lors du survol d'un bouton.
- Dans la classe transition-box
, la propriété transition
applique une transition de 2 secondes au changement de couleur d'arrière-plan. Le changement est spécifié comme ease
, le rendant fluide.
- La pseudo-classe hover
change la couleur d'arrière-plan de lightgray
à steelblue
lorsque la souris survole le bouton. Ce changement s'effectue en douceur sur les 2 secondes spécifiées dans la classe transition-box
.
Il est possible d'appliquer transition
à plusieurs propriétés simultanément.
- Dans l'exemple de la classe transition-2-properties
, la couleur d'arrière-plan change en 5 secondes et la largeur change en 0,5 seconde.
Syntaxe de base
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
- La propriété
property
spécifie à quelles propriétés CSS l'animation doit être appliquée. Spécifierall
applique l'animation à toutes les propriétés. - La propriété
duration
spécifie le temps nécessaire pour que l'animation soit terminée. Spécifiez en secondes (s
) ou en millisecondes (ms
). - La propriété
timing-function
spécifie les variations de vitesse de l'animation. Vous pouvez utiliser des options commeease
,linear
,ease-in
,ease-out
,ease-in-out
, etc. - La propriété
delay
spécifie le temps d'attente avant le démarrage de l'animation. Spécifiez en secondes ou en millisecondes.
Propriétés détaillées de transition
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
La propriété transition
peut également être utilisée sous forme de propriétés individuelles comme suit.
transition-property
: Spécifie la propriété à laquelle l'animation est appliquée.transition-duration
: Spécifie la durée nécessaire à l'animation pour se terminer.transition-timing-function
: Spécifie la vitesse de progression de l'animation. Des options commeease
,linear
,ease-in
,ease-out
,ease-in-out
peuvent être utilisées.transition-delay
: Spécifie le temps d'attente avant le démarrage de l'animation.
Vous pouvez suivre l'article ci-dessus avec Visual Studio Code sur notre chaîne YouTube. Veuillez également consulter la chaîne YouTube.