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,
slideest é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éanimationest 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éanimationou 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-outspécifieslidecommeanimation-nameet utilise l'animationslidedéfinie dans@keyframes.3sest la durée de l'animation (animation-duration), ce qui signifie que chaque cycle d'animation est complété en 3 secondes.ease-in-outest 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.infiniteest 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-alternatespécifiecolor-changecommeanimation-nameet utilise l'animationcolor-changedé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.alternateest la direction de l'animation (animation-direction), spécifiant la direction de lecture de l'animation.alternatespé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
easefait commencer lentement l'animation, puis elle accélère avant de ralentir à nouveau à la fin. - Spécifier
linearfait progresser l'animation à une vitesse constante du début à la fin. - Indiquer
ease-incommence l'animation lentement et la termine rapidement. - Indiquer
ease-outcommence l'animation rapidement et la termine lentement. - Indiquer
ease-in-outcommence lentement, progresse rapidement et se termine lentement.
- Spécifier
- La propriété
animation-delayspé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-countspécifie le nombre de fois que l'animation doit se répéter. Indiquerinfiniterépétera l'animation indéfiniment. - La propriété
animation-directionspé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-modespécifie l'état de l'animation avant qu'elle ne commence et après qu'elle se termine. Vous pouvez spécifiernone,forwards,backwardsouboth. - La propriété
animation-play-statespécifie si l'animation est en cours d'exécution ou en pause. Vous pouvez spécifierrunningoupaused.
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é
propertyspécifie à quelles propriétés CSS l'animation doit être appliquée. Spécifierallapplique l'animation à toutes les propriétés. - La propriété
durationspé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-functionspé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é
delayspé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-outpeuvent ê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.