Reveal


Vue d'ensemble

Animer des éléments au scroll, devient un jeu d'enfant, la seule chose à faire c'est d'ajouter une classe d'animation préfixée par reveal-- suivit du nom de l'animation et c'est tout.

Plusieurs animations pour faire apparaitre vos éléments sont disponibles : .reveal--fade-in, .reveal--slide-left, .reveal--slide-right, .reveal--slide-up, .reveal--slide-down, .reveal--light-left, .reveal--light-right, .reveal--scale-up et pour .reveal--flip-x.

↓...Scrollez pour visualiser quelques animations d'apparition....↓

Slide left
Slide right
Slide up
Slide down
Light left
Light right
Fade in
Scale up

A noter qu'il est important que les classes .reveal-- soient placées en dernier. Le script javascript en charge de lancer les animations rajoute par défaut la classe .reveal.

Vous pouvez également contrôler le delay de début de l'animation. Pour cela les classes de .reveal--delay-1 à .reveal--delay-7. Vous pouvez également prendre la contrôles des transitions via les classes utilitaires d'animations.

La classe javascript Revealify pour activer l'animation se sert de l'API Intersection Observer MDN Référence. Grâce à l'attribut data-js-reveal, vous pouvez passer en option le nom classe à ajouter à l'élément et les options par défaut de l'API dans un format JSON. Vous donc ainsi contrôler et personnaliser l'action.

Les options disponibles sont :

  • root définit la racine de l'intersection, par défaut vaut null, ce qui signifie que la racine se réfèrera à l'élément courant. Si le paramètre est de type String on se réfère à l'élément courant ciblé par l'id d'un élément.

  • rootMargin correspond a la marge autour de la racine exprimée généralement en pixel (px).

  • threshold est un nombre compris entre 0 et 1 qui indique à quel pourcentage de la visibilité de la cible, l'action doit être déclenchée.

  • addClass est le nom de la classe à ajouter à la place de la classe par défaut .reveal

Animation personnalisée
<div class="reveal--slide-left" style="--p:1em;">Slide left</div>
<div class="reveal-delay-1 reveal--slide-right" style="--p:1em;">Slide right</div>
<div class="reveal-delay-2 reveal--slide-up" style="--p:1em;">Slide up</div>
<div class="reveal-delay-3 reveal--slide-down" style="--p:1em;">Slide down</div>
<div class="reveal-delay-4 reveal--light-left" style="--p:1em;">Light left</div>
<div class="reveal-delay-5 reveal--light-right" style="--p:1em;">Light right</div>
<div class="reveal-delay-6 reveal--fade-in" style="--p:1em;">Fade in</div>
<div class="reveal-delay-7 reveal--scale-up" style="--p:1em;">Scale up</div>
<div class="box-reveal-sample" data-js-reveal='{ "addClass" : "box-appear", "rootMargin": "160px 20px 200px 20px", "threshold": 0.99 }'>
	Animation personnalisée
</div>