Animations de base en CSS CSS34

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.

Afficher la solution

Solution :

<!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.

Afficher la solution

Solution :

Code à placer dans l’en-tête de la page HTML en personnalisant la valeur de l’attribut href si nécessaire.

<link  rel="stylesheet" type="text/css" href="style.css">

Construisez une base de travail correspondant à l’illustration suivante :

Base de travail
Afficher la solution HTML

Solution HTML :

<div class="container">
  <div class="item">
    A
  </div>
</div>
Afficher la solution CSS

Solution CSS :

@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 :

Afficher la solution HTML

Solution HTML :

<div class="container">
  <div class="item item-1">
    A
  </div>
</div>

Effectuez les paramétrages CSS permettant d’obtenir l’animation suivante :

Animation 1
Animation 1
Afficher la solution CSS

Solution CSS :

.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 :

Animation 2
Animation 2
Afficher la solution CSS

Solution CSS :

.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 :

Animation 3
Animation 3
Afficher la solution CSS

Solution CSS :

.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 :

Animation 4
Animation 4
Afficher la solution CSS

Solution CSS :

.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 :

Animation 5
Animation 5
Afficher la solution CSS

Solution CSS :

.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 :

Animation 6
Animation 6
Afficher la solution CSS

Solution CSS :

.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;
  }
}

Sauf mention contraire*, l'article Animations de base en CSS [CSS34] et son contenu par Julien Crego sont mis à disposition selon les termes de la licence Creative Commons

Licence Creative Commons

Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

Cette licence vous permet de remixer, arranger, et adapter cette œuvre à des fins non commerciales tant que vous créditez la source en citant le nom des auteurs et que les nouvelles œuvres sont diffusées selon les mêmes conditions.

* Cette notice est intégrée automatiquement à la fin de chaque article de ce site.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.