Récupérer la position de la souris ################################## .. warning:: À priori que pour une fenêtre de navigateur format paysage, à mettre à jour pour le format vertical .. warning:: Ce code doit être couplé avec une expression pour donner quelque chose ! .. code-block:: javascript var conteneur = document.getElementById('conteneur_animation'); var anim_exemple_simple = 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 !) }) var groupe; // on y mettra la référence du premier élément groupe du SVG var ratio; // largeur/hauteur de la compo after var position_souris = [0,0]; // position de la souris, par défaut 0,0 // dès que l'animation est chargée dans le DOM anim_exemple_simple.addEventListener("DOMLoaded", function(){ // on récupère la référence du groupe groupe = document.querySelector('g'); // on récupère les infos sur la compo after ratio = [parseInt(document.querySelector("rect").getAttribute('width')),parseInt(document.querySelector("rect").getAttribute('height'))]; // on ajoute un écouteur d'événement sur le survol du groupe // qui met à jour la variable relative à la position de la souris groupe.addEventListener('mousemove', modifier_position_souris ) }) function modifier_position_souris ( evenement ) { /* calcul de la nouvelle position de la souris */ position_souris = [evenement.clientX, evenement.clientY - calcul_offset() ]; } function calcul_hauteur () { /* calcul de la hauteur de l'animation, ne marche qu'en mode paysage probablement */ var largeur = document.querySelector('svg').clientWidth; var hauteur = largeur * ( ratio[1] / ratio[0] ); return hauteur; } function calcul_offset () { /* calcul le décalage entre le haut de l'animation et le bord supérieur de la vue */ return (document.body.offsetHeight - calcul_hauteur()) / 2; }