Un tutoriel pour afficher sur une page web les éléments qui se trouvent au niveau de la barre de défilement (scroll bar) avec wow.js en les animant avec animate.css
Wow.js est une libraire Javascript qui permet de suivre le niveau de la barre de défilement (Scroll bar) du navigateur pour afficher les éléments d'une page web suivant ce niveau ou dans la zone d'affichage (viewport).
Animate.css est une librairie CSS qui permet d'animer les éléments d'une page web à partir des classes CSS liées aux animations.
Nous allons voir dans ce guide comment télécharger les librairies wow.js et animate.css, les importer dans une page HTML pour afficher en animant les éléments de cette dernière par rapport au niveau de la barre de défilement ou dans la zone d'affichage.
Les librairies wow.js et animate.css sont accessibles depuis les adresses suivantes :
Pour les importer dans une page HTML, nous avons le choix soit d'utiliser les liens CDN de la manière suivante :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WOW.js et Animate.css</title>
<!-- Importation CDN animate.min.css -->
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
</head>
<body>
<!-- Importation CDN wow.min.js -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" ></script>
</body>
</html>
Ou les télécharger via npm en exécutant la commande suivante :
npm install wow.js animate.css --save
Puis les importer dans une page HTML depuis le dossier /node_modules :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WOW.js et Animate.css</title>
<!-- Importation animate.min.css -->
<link rel="stylesheet" type="text/css" href="./node_modules/animate.css/animate.min.css">
</head>
<body>
<!-- Importation wow.min.js -->
<script type="text/javascript" src="./node_modules/wow.js/dist/wow.min.js" ></script>
</body>
</html>
Animate.css présente des nombreux styles d'animation que nous pouvons trouver à l'adresse https://animate.style : « bounce, « fadeIn », « flash », « swing », « flipInX », « slideDown », zoomInDown », ...
Pour animer un élement d'une page web (titre <h1>
, image <img>
, paragraphe <p>
, ...), on lui ajouter la classe « animate__animated animate__ » suivi du nom de l'animation.
Exemple
<!-- animation "zoomInDown" -->
<h1 class="animate__animated animate__zoomInDown" >WOW.js et Animate.css</h1>
<!-- animation "fadeInDown" -->
<p class="animate__animated animate__fadeInDown" >Lorem ipsum dolor sit amet, ...</p>
<!-- animation "slideInUp" -->
<img src="https://picsum.photos/300" alt="" class="animate__animated animate__slideInUp" >
Aussitôt qu'une page HTML est chargée dans le navigateur, ses éléments s'affichent avec les animations d'animate.css. En défilant vers le bas de la page, les autres éléments en dehors de la viewport se présentent sans animation bien qu'ils aient la classe « animate__animated animate__... ».
Pour contourner ce problème, wow.js masque les éléments de la page qui sont en dehors de la zone d'affichage pour les afficher dès qu'ils se trouvent à un certain niveau de la barre de défilement ou dans la viewport.
Comme nous avions déjà importé wow.js, nous pouvons l'initialiser via le code JavaScript ci-dessous :
<!-- Importation wow.min.js -->
<script type="text/javascript" src="./node_modules/wow.js/dist/wow.min.js" ></script>
<!-- // Initialisation wow.js -->
<script type="text/javascript">
new WOW().init()
</script>
Nous pouvons à présent ajouter la classe CSS « wow » aux élements à révéler par rapport au niveau de la scroll bar ou dans la viewport. Complétons l'exemple précédent :
<!-- "wow" avec animation "zoomInDown" -->
<h1 class="wow animate__animated animate__zoomInDown" >WOW.js et Animate.css</h1>
<!-- "wow" avec animation "fadeInDown" -->
<p class="wow animate__animated animate__fadeInDown" >Lorem ipsum dolor sit amet, ...</p>
<!-- "wow" avec animation "slideInUp" -->
<img src="https://picsum.photos/300" alt="" class="wow animate__animated animate__slideInUp" >
Wow.js présente des attributs (options) pour determiner les comportements des éléments d'une page HTML lorsqu'ils s'affichent :
Attribuons ces options à nos elements :
<!-- "wow" + animation "fadeInDown" + "data-wow-duration" + "data-wow-iteration" -->
<h1 class="wow animate__animated animate__bounceIn" data-wow-duration="1s" data-wow-iteration="3" >WOW.js et Animate.css</h1>
<!-- "wow" + animation "fadeInDown" + "data-wow-offset" + "data-wow-delay" -->
<p class="wow animate__animated animate__fadeInDown" data-wow-offset="150" data-wow-delay="500ms" >Lorem ipsum ...</p>
Nous pouvons paramétrer wow.js lors de l'initialisation en lui transmettant un objet avec les propriétés suivantes :
new WOW({
boxClass: 'wow', // par défaut
animateClass: 'animated', // par défaut
offset: 0, // par défaut
mobile: true, // par défaut
live: true // par défaut
}).init();
Nous avons :
Portez-vous bien !
Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.
Wilo Ahadi, l'auteur
Passionné de l'informatique, je suis spécialiste en techniques des systèmes et réseaux, développeur web et mobile, infographiste et designer, ... J'aime partager mon expérience en formant sur la plateforme Akili School
Voir profilAutres publications
Voir toutes les publication de Wilo Ahadi
Sélection ebook
10 Laravel tips and techniques for your next PHP project
Développement web
Commentaires