Dans les termes du Skill
ScrollTrigger est le plugin de GSAP pour l'animation liée au scroll : déclencher des tweens et timelines à des positions de scroll, épingler des sections, synchroniser la progression sur le scroll (scrub), et piloter une timeline sur une plage start/end.
Il détaille l'ensemble du vocabulaire de configuration — trigger, start/end incluant clamp() et les valeurs relatives, endTrigger, scrub, toggleActions, pin et pinSpacing, snap, scroller, id, refreshPriority — et ajoute ScrollTrigger.batch() pour des révélations échelonnées arrivant ensemble, scrollerProxy() pour les smooth scrollers tiers, et containerAnimation pour un faux scroll horizontal. Les valeurs par défaut sont indiquées pour chaque option, avec une checklist de bonnes pratiques et une liste explicite d'interdits couvrant le nettoyage React, l'ordre de refresh, l'ease et les marqueurs résiduels.
Ce qu'il produit
- Un tween ou une timeline dont la progression est liée à la position de scroll via la plage start-to-end du trigger.
- Un ScrollTrigger autonome créé sans tween lié, utilisé avec des callbacks pour un comportement personnalisé comme la mise à jour de l'UI à partir de self.progress.
- Un Array d'instances ScrollTrigger, une par cible de batch, retourné par ScrollTrigger.batch().
- Tweens imbriqués déclenchés en fonction du mouvement horizontal produit par un tween containerAnimation.
Fonctionnement
- 01Enregistrer le plugin une seule fois
ScrollTrigger est livré comme un plugin plutôt que dans l'API d'animation principale, il est donc enregistré une seule fois après le chargement du script, avant toute configuration scrollTrigger.
- 02Attacher une configuration scrollTrigger
Un tween ou une timeline reçoit un objet scrollTrigger nommant l'élément déclencheur ainsi qu'un start et un end décrivant la position du déclencheur par rapport à la position du viewport.
- 03Choisir comment le scroll pilote la tête de lecture
Le scrub relie la progression en continu à la position de scroll, avec éventuellement un délai de rattrapage numérique, tandis que toggleActions déclenche des actions discrètes de play/reverse aux quatre franchissements.
- 04Épingler une section et scruber une timeline
Le pinning maintient l'élément déclencheur pendant que la plage est active, et une timeline attachée à ce ScrollTrigger fait avancer ses enfants sur cette même étendue start-to-end.
- 05Regrouper les éléments qui arrivent ensemble
ScrollTrigger.batch() crée un ScrollTrigger par cible et collecte leurs callbacks sur un court intervalle afin que les éléments entrant quasi simultanément puissent être animés avec un stagger en un seul appel.
- 06Détruire les instances quand le contenu disparaît
La suppression d'éléments animés ou le changement de page, comme dans une application single-page, nécessite de détruire les instances associées afin qu'elles ne continuent pas à s'exécuter sur des éléments obsolètes.