در پروژههای بزرگ و انیمیشنهای پیچیده، قدرت واقعی GSAP زمانی دیده میشود که چند پلاگین را همزمان به کار بگیریم. با ترکیب پلاگینهای مختلف میتوان انیمیشنهای تعاملی، واکنشگرا و چشمگیر ساخت؛ مثل صفحات لندینگ سهبعدی، بازیهای ساده، یا موشنگرافیک وب.
💡 ایدههای متداول برای ترکیب پلاگینها
ترکیب پلاگین | نمونهٔ کاربرد |
---|---|
ScrollTrigger + Timeline + SplitText | تایپ تدریجی متن هنگام اسکرول |
Draggable + Inertia + Physics2D | کشیدن و پرتاب کردن یک آبجکت (Drag & Throw) |
Flip + ScrollTrigger | تغییر جای عناصر با انیمیشن هنگام تغییر Layout واکنشگرا |
MotionPath + MorphSVG + DrawSVG | حرکت آبجکت روی مسیر منحنی که در طول مسیر شکل SVG تغییر کند |
PixiPlugin + GSDevTools | موشنگرافیک WebGL با کنترل زنده و دیباگ زمانبندی |
Observer + ScrollTo + ScrollSmoother | اسکرول نرم + پرش به سکشن خاص با ژست لمسی |
🎯 مثال ۱: متن تعاملی با اسکرول
ترکیب SplitText و ScrollTrigger
<h1 class="title">Creative Animations</h1>
gsap.registerPlugin(SplitText, ScrollTrigger);
const split = new SplitText(".title", { type: "chars" });
gsap.from(split.chars, {
scrollTrigger: {
trigger: ".title",
start: "top 80%",
toggleActions: "play none none reverse"
},
opacity: 0,
y: 50,
stagger: 0.05
});
-
هر کاراکتر هنگام ورود به viewport با استاگر زیبا نمایان میشود.
🎯 مثال ۲: درَگ و فیزیک پرتاب
ترکیب Draggable + InertiaPlugin + Physics2DPlugin
<div class="ball"></div>
gsap.registerPlugin(Draggable, InertiaPlugin, Physics2DPlugin);
Draggable.create(".ball", {
inertia: true,
onRelease() {
gsap.to(this.target, {
physics2D: {
velocity: this.getVelocity("x"), // سرعت رها شدن
angle: -45,
gravity: 500
}
});
}
});
-
آبجکت را بکشید و رها کنید؛ با سرعت و جهت واقعی پرتاب میشود.
🎯 مثال ۳: مسیر حرکتی SVG
ترکیب MotionPathPlugin + MorphSVGPlugin
gsap.registerPlugin(MotionPathPlugin, MorphSVGPlugin);
gsap.to(".dot", {
duration: 6,
repeat: -1,
ease: "power1.inOut",
motionPath: {
path: "#path",
align: "#path",
alignOrigin: [0.5, 0.5]
}
});
gsap.to("#path", {
duration: 6,
repeat: -1,
yoyo: true,
morphSVG: "M20,200 Q200,100 380,200 Q200,300 20,200 Z"
});
-
نقطه روی مسیر حرکت میکند در حالی که شکل مسیر هم تغییر مییابد.
⚙️ نکات حرفهای
-
Timeline مرکزی (Master Timeline):
همهٔ توالیها و پلاگینها را در یک Timeline والد با برچسبها مدیریت کنید تا کنترل پخش/توقف ساده باشد. -
Context و Cleanup:
در فریمورکهای SPA (React/Vue/Next) از()gsap.context
و()revert
برای حذف ایمن انیمیشنها هنگام تغییر صفحه استفاده کنید. -
بهینهسازی کارایی:
-
will-change
در CSS برای عناصر متحرک. -
استفاده از GPU-friendly transforms (
x
,y
,scale
,rotation
) به جای تغییرات سنگین مثلwidth
یاtop
.
-
-
ترکیب Easeها:
از پلاگین CustomEase یا EasePack برای هماهنگی حرکت بین چند انیمیشن بهره بگیرید.
✅ جمعبندی
-
قدرت GSAP در هماهنگسازی چند پلاگین است؛ هر پلاگین یک توانایی ویژه میدهد (اسکرول، فیزیک، متن، SVG و …).
-
با Timeline والد و برچسبهای زمانی میتوانید این پلاگینها را منظم و ماژولار کنار هم قرار دهید.
-
نتیجه: انیمیشنهایی واکنشگرا، روان و حرفهای که بهسادگی در پروژههای بزرگ وب یا اپلیکیشنهای SPA قابل نگهداری است.