انیمیشن‌های پیچیده با ترکیب چند پلاگین

در پروژه‌های بزرگ و انیمیشن‌های پیچیده، قدرت واقعی 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" });
  • نقطه روی مسیر حرکت می‌کند در حالی که شکل مسیر هم تغییر می‌یابد.

⚙️ نکات حرفه‌ای

  1. Timeline مرکزی (Master Timeline):
    همهٔ توالی‌ها و پلاگین‌ها را در یک Timeline والد با برچسب‌ها مدیریت کنید تا کنترل پخش/توقف ساده باشد.

  2. Context و Cleanup:
    در فریم‌ورک‌های SPA (React/Vue/Next) از ()gsap.context و ()revert برای حذف ایمن انیمیشن‌ها هنگام تغییر صفحه استفاده کنید.

  3. بهینه‌سازی کارایی:

    • will-change در CSS برای عناصر متحرک.

    • استفاده از GPU-friendly transforms (x, y, scale, rotation) به جای تغییرات سنگین مثل width یا top.

  4. ترکیب Easeها:
    از پلاگین CustomEase یا EasePack برای هماهنگی حرکت بین چند انیمیشن بهره بگیرید.

✅ جمع‌بندی

  • قدرت GSAP در هماهنگ‌سازی چند پلاگین است؛ هر پلاگین یک توانایی ویژه می‌دهد (اسکرول، فیزیک، متن، SVG و …).

  • با Timeline والد و برچسب‌های زمانی می‌توانید این پلاگین‌ها را منظم و ماژولار کنار هم قرار دهید.

  • نتیجه: انیمیشن‌هایی واکنش‌گرا، روان و حرفه‌ای که به‌سادگی در پروژه‌های بزرگ وب یا اپلیکیشن‌های SPA قابل نگهداری است.