In den eigenen Worten des Skills
Offizielle GSAP-Anleitung zum Animieren von Vue-, Nuxt-, Svelte- und SvelteKit-Komponenten, bei denen der Framework-Lebenszyklus bestimmt, wann DOM-Knoten existieren. Sie weist den Agent an, Tweens und ScrollTriggers erst nach dem Mount zu erstellen — onMounted in Vue, onMount in Svelte — innerhalb von gsap.context(scope) mit der Container-Ref als zweitem Argument, sodass Selektoren wie .box innerhalb dieser Komponente bleiben.
Beim Unmount beendet ctx.revert() die Animationen und ScrollTriggers und setzt Inline-Styles zurück. Zudem wird ein Nuxt 4 useGSAP-Composable behandelt, das ScrollTrigger einmalig registriert und Plugins wie SplitText per dynamischem Import lazy lädt, sowie das Aktualisieren von Trigger-Positionen nach Layoutänderungen.
Was er erzeugt
- Ein ausführbares Vite + Vue 3-Beispielprojekt, das die Context- und Cleanup-Muster demonstriert.
- Ein Nuxt-Composable, das in Komponenten über useGSAP() genutzt wird und die gsap-Instanz sowie die Lazy-Loading-Methode bereitstellt.
- Ein typisierter lazyLoadPlugin-Helper, der ein Plugin dynamisch importiert, es bei gsap registriert und zurückgibt.
So funktioniert es
- 01Auf das DOM warten, bevor Sie erstellen
Tweens und ScrollTriggers werden erst erstellt, sobald das DOM der Komponente verfügbar ist, unter Verwendung von onMounted in Vue oder onMount in Svelte, damit die Container-Ref tatsächlich existiert.
- 02Alles auf die Komponentenwurzel beschränken
Der gesamte Animationsaufbau wird in gsap.context(callback, scope) eingebettet, wobei die Container-Ref als zweites Argument übergeben wird, sodass Selektoren wie .item nur innerhalb dieses Teilbaums aufgelöst werden.
- 03Im Framework-Teardown zurücksetzen
Jedes Beispiel speichert den Context in einer Variable und ruft ctx.revert() aus onUnmounted (Vue) oder aus der von onMount (Svelte) zurückgegebenen Cleanup-Funktion auf.
- 04Nach Layoutänderungen aktualisieren
ScrollTrigger-Positionen werden neu berechnet, sobald sich das Layout stabilisiert hat, zum Beispiel nachdem geladene Daten die Trigger-Positionen verändert haben.