déclencher la lecture de différentes phases de l’animation¶
On suppose ici une animation sur 150 frames.
Pour connaître le nombre de frames de votre animation, vous pouvez tapez votre_animation.totalFrames
dans la console du navigateur (en adaptant à l’identificateur utilisé pour déclarer votre animation).
vidéo rapide¶
html¶
Dans cet exemple, on utilise des boutons, ce n’est pas du tout obligatoire, il est même recommandé de trouver mieux.
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta charset="utf-8">
<title>exemple lottie</title>
<link rel="stylesheet" href="master.css">
</head>
<body>
<button id="bouton-a">0-49</button>
<button id="bouton-b">50-99</button>
<button id="bouton-c">100-150</button>
<button id="bouton-d">0-49 puis 50-99</button>
<button id="bouton-e">forcer lecture immédiate 50-99</button>
<button id="bouton-f">0-150</button>
<div id="conteneur_animation"></div>
<script src="lottie.js" charset="utf-8"></script>
<script src="master.js" charset="utf-8"></script>
</body>
</html>
javascript¶
var conteneur = document.getElementById('conteneur_animation');
var animation = bodymovin.loadAnimation({
container: conteneur, // conteneur, obligatoire
path: 'data.json', // fichier de données, obligatoire
renderer: 'svg', // requis, moteur de rendu parmi 'svg','canvas','html'
loop: true, // optionnel
autoplay: true, // optionnel
name: 'exemple-simple', // optionnel, permet de sélectionner l'animation par la suite dans certains cas (mettre un nom unique !)
})
/* on sélectionne nos boutons */
var bouton_a = document.querySelector("#bouton-a");
var bouton_b = document.querySelector("#bouton-b");
var bouton_c = document.querySelector("#bouton-c");
var bouton_d = document.querySelector("#bouton-d");
var bouton_e = document.querySelector("#bouton-e");
var bouton_f = document.querySelector("#bouton-f");
/* on créé des variables pour nos séquences */
var sequence_a = [0,49]; // de la frame 0 à 49
var sequence_b = [50,99]; // de la frame 50 à 99
var sequence_c = [100,150]; // de la frame 50 à 99
var sequence_d = [0,150]; // de la frame 50 à 99
var sequence_b_puis_c = [ sequence_b, sequence_c ]; // de la frame 50 à 99
animation.addEventListener("DOMLoaded", function(){
animation.playSegments( sequence_a );
});
bouton_a.addEventListener('click', function () {
animation.playSegments( sequence_a );
});
bouton_b.addEventListener('click', function () {
animation.playSegments( sequence_b );
});
bouton_c.addEventListener('click', function () {
animation.playSegments( sequence_c );
});
bouton_d.addEventListener('click', function () {
animation.playSegments( sequence_b_puis_c );
});
bouton_e.addEventListener('click', function () {
animation.playSegments( sequence_b, true );
});
bouton_f.addEventListener('click', function () {
animation.playSegments( sequence_d, true );
});