L’objectif de cet exercice est de s’initier aux animations CSS.
Mise en place de l’exercice
Créez un dossier racine nommé css34.
Créez un fichier css34.html dans votre dossier racine avec le contenu de base d’une page HTML.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Titre de la page</title> </head> <body> </body> </html>
Créez un nouveau fichier style.css et liez-le à la page HTML.
Code à placer dans l’en-tête de la page HTML en personnalisant la valeur de l’attribut href
si nécessaire afin qu’elle corresponde à l’emplacement et au nom du fichier CSS.
<link rel="stylesheet" type="text/css" href="style.css">
Construisez une base de travail correspondant à l’illustration suivante :
<div class="container"> <div class="item"> A </div> </div>
@import url("https://fonts.googleapis.com/css?family=Montserrat:400"); .container { display: flex; justify-content: center; margin: 10px; padding: 10px; border: 3px solid #bbb; background-color: #eee; } .item { display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 50px; height: 50px; background-color: #eeaaf0; border: 3px solid #e227e6; font-size: 3rem; font-family: Montserrat, sans-serif; color: #e227e6; }
Animations
Dupliquez la base de travail et ajoutez une classe au conteneur ou à l’élément enfant afin de pouvoir l’animer.
<div class="container"> <div class="item item-1"> A </div> </div>
Effectuez les paramétrages CSS permettant d’obtenir l’animation suivante :
.item-1 { animation-name: anim-1; animation-duration: 4s; animation-iteration-count: infinite; } @keyframes anim-1 { 0% { } 100% { background-color: #aaecf0; color: #07ecfa; border-color: #07ecfa; } }
Dupliquez à nouveau la base de travail et appliquez les paramétrages CSS permettant d’obtenir l’animation suivante :
.item-2 { animation-name: anim-2; animation-duration: 4s; animation-iteration-count: infinite; } @keyframes anim-2 { 0% { } 100% { margin-left: calc(100% - 50px); } }
Dupliquez à nouveau la base de travail et appliquez les paramétrages CSS permettant d’obtenir l’animation suivante :
.item-3 { animation-name: anim-3; animation-duration: 4s; animation-iteration-count: infinite; animation-direction: alternate; } @keyframes anim-3 { 0% { } 100% { margin-left: calc(100% - #{$width}); transform: rotate(360deg); } }
Dupliquez à nouveau la base de travail et appliquez les paramétrages CSS permettant d’obtenir l’animation suivante :
.item-4 { animation-name: anim-4; animation-duration: 4s; animation-iteration-count: infinite; } @keyframes anim-4 { 0% { } 25% { margin-right: calc(100% - #{$width}); } 50% { margin-right: 0; margin-left: 0; } 75% { margin-left: calc(100% - #{$width}); } 100% { margin-right: 0; margin-left: 0; } }
Dupliquez à nouveau la base de travail et appliquez les paramétrages CSS permettant d’obtenir l’animation suivante :
.item-5 { animation-name: anim-4; /* On réutilise les keyframes de l'animation 4 */ animation-duration: 4s; animation-iteration-count: infinite; animation-timing-function: linear; }
Dupliquez à nouveau la base de travail et appliquez les paramétrages CSS permettant d’obtenir l’animation suivante :
.item-6 { animation-name: anim-6; animation-duration: 8s; animation-iteration-count: 1; animation-fill-mode: forwards; } @keyframes anim-6 { 0% { } 25% { background-color: #aaecf0; color: #07ecfa; border-color: #07ecfa; margin-left: 0; } 50% { background-color: #aaecf0; color: #07ecfa; border-color: #07ecfa; margin-left: calc(100% - 50px); } 75% { background-color: #ffe699; color: #fcc61e; border-color: #fcc61e; margin-left: calc(100% - 50px); } 100% { background-color: #ffe699; color: #fcc61e; border-color: #fcc61e; margin-left: 0; } }