Présentation de ScrollMagic 2.0

Si vous souhaitez générer de superbes animations de défilement dans votre prochain projet, ne cherchez plus. ScrollMagic est une bibliothèque JavaScript qui vous aide à créer des interactions de défilement «magiques» qui réagissent sans effort à la position de défilement actuelle de l'utilisateur et déclenchent des animations ou des événements synchronisés.. 

ScrollMagic a récemment subi de gros changements. Voici donc un survol rapide des changements et améliorations depuis sa renaissance..

La page d'accueil ScrollMagic

Quoi de neuf?

Les dépendances qui étaient jadis des composants essentiels de ScrollMagic, telles que GreenSock (GSAP) et jQuery, ont été entièrement supprimées de la bibliothèque. Depuis la version 2.0.0, tout ce qui ajoute des fonctionnalités en haut de ScrollMagic est traité comme un plugin, faisant de ScrollMagic une bibliothèque autonome (6Ko compressé)! 

Le Changelog contient de nombreuses autres facettes qui ont été ajustées, si vous choisissez de plonger plus profondément. Si vous n’avez pas le temps, voici une liste des changements apportés:

  1. Suppression des dépendances et introduction de plugins
  2. Les contrôleurs sont maintenant instanciés à l'aide de ScrollMagic.Controller ()
  3. Les scènes sont maintenant définies comme ScrollMagic.Scene ()
  4. Enlèvement de triggerOffset
  5. Enlèvement de pinClass (ceci peut être réalisé avec setClassToggle en 2.0)
  6. suiveurs la valeur par défaut est définie sur faux
  7. Nouveaux événements: ajouter et retirer
  8. Renommé .parent à .manette
  9. Extension de débogage renommée en plugins / scene.addIndicators et peut être ajouté avant le contrôleur et fonctionne même lorsque des scènes sont supprimées et ré-ajoutées.
  10. Nouvelle méthode removeIndicators

Tweaks de performance

Des améliorations de performances améliorant la vitesse de ScrollMagic ont été suggérées par Paul Irish en ce qui concerne la mise à jour de RAF (request animation frame). Au lieu d'écouter directement l'événement de défilement, une technique appelée «décomposition» a été utilisée à l'origine. Cela signifie que tout ce qui doit être exécuté sur Scroll est réellement exécuté dans un délai d'attente (delay). Quand onScroll avait été déclenché la seule chose qui a changé était une variable telle que wasScrolled = true et inspecté pour dans la fonction de délai d'attente. A l’origine, la fonction anti-rebond était appelée RAF et cherchait constamment le était enroulé var dans une boucle. 

Au lieu d’une boucle, il est simplement programmé de vérifier le prochain RAF lorsqu’un événement de défilement est déclenché. Tout cela signifie que lorsqu'aucun défilement n'est en cours, aucune boucle n'est en cours d'exécution!

Durées réactives

Les durées réactives doivent être l'une de mes améliorations préférées de la bibliothèque, à part l'amélioration des performances. le Scène durée peut maintenant accepter une chaîne de valeur en pourcentage comme "100%". Le parchemin sera calculé en fonction de la taille du conteneur du parchemin. ScrollMagic utilisera la hauteur du conteneur pour les systèmes de défilement vertical et sa largeur pour les conteneurs de défilement horizontal..

var scene = new ScrollMagic.Scene (duration: "100%");

Chargement du script

L'ordre des scripts est un peu différent maintenant, puisque des bibliothèques telles que GSAP ont été séparées au lieu de faire partie du noyau ScrollMagic. Cela signifie que chaque fois que vous désirez une bibliothèque comme TweenMax, vous devez d'abord charger la bibliothèque principale GSAP, puis la bibliothèque principale ScrollMagic, puis enfin le plugin ScrollMagic que vous avez choisi.. 

N'oubliez pas de toujours charger la bibliothèque principale GSAP en premier, puis les plugins ScrollMagic.

  

L'appel de script pour le plug-in GSAP est le nouveau plug-in de ScrollMagic qui contient la fonctionnalité d'interpolation GSAP précédemment intégrée à ScrollMagic. Jan a également intégré velocity.js pour ceux qui ne souhaitent pas utiliser la fonctionnalité fournie par GSAP..

Définir les contrôleurs

Un contrôleur est un moyen de «contrôler les scènes». C'est une classe nécessaire une fois par conteneur de défilement et écrite légèrement en 2.0..

Comparons maintenant la manière dont les contrôleurs sont instanciés, avec la manière dont ils étaient dans l'ancienne version:

L'ancienne manière

contrôleur var = new ScrollMagic ();

Nouvelle façon

contrôleur var = new ScrollMagic.Controller ();

Des scènes

La scène est l'emplacement de votre mouvement / animation. Il définit où le contrôleur doit réagir et comment. C'est aussi un autre exemple où la syntaxe a légèrement changé.

L'ancienne manière

var scene = new ScrollScene (triggerElement: "# pinned-trigger", durée: $ (window) .height () - 100, triggerHook: 0, reverse: true) .setPin ("# pinned-element") .addTo (manette);

Nouvelle façon

var scene = new ScrollMagic.Scene (triggerElement: "# pinned-trigger", durée: $ (window) .height () - 100, triggerHook: 0, reverse: true) .setPin ("# pinned-element") .addTo (contrôleur);

Conseils de mise à jour

En parlant avec Jan Paepke, le créateur de ScrollMagic, j’ai appris un truc formidable qui vous fait gagner du temps et vous aide à migrer de votre ancien code ScrollMagic vers le nouveau.

  1. Effectuez d’abord une “Recherche et remplacement” dans votre éditeur de texte pour “ScrollMagic"Et remplacez la chaîne par"SM_TMP”Dans tous vos fichiers. 
  2. Suivant remplacer “ScrollScene" avec "ScrollMagic.Scene”.
  3. Enfin, remplacez «SM_TMP" avec "ScrollMagic.Controller”.

Remarque: Assurez-vous de ne pas inclure les fichiers source de ScrollMagic dans votre recherche; appliquez-les uniquement à votre propre code. C'est une étape supplémentaire, mais elle est plus sécurisée, car il peut arriver que vous ayez des espaces avant les crochets..

Documentation

Si vous avez besoin d'aide avec ScrollMagic, vous pouvez consulter ma collection CodePen utilisée pour la section WIKI du référentiel ScrollMagic. Le WIKI a aussi d'excellentes explications, ainsi que les démonstrations fournies dans la partie exemples du site officiel ScrollMagic:

Maintenant, créez des animations de défilement impressionnantes pour votre projet.!