مدیریت timelineهای تو در تو
مدیریت Timelineهای تو در تو (Nested Timelines) در GSAP وقتی مهم میشود که پروژهٔ شما چندین توالی انیمیشن دارد که باید به صورت هماهنگ و ماژولار کنترل شوند.
GSAP اجازه میدهد یک Timeline را داخل دیگری قرار دهید و تمام متدهای کنترلی (play، pause، …) همچنان کار کنند.
🏗️ ساختار پایه
یک Timeline والد (Parent) میتواند شامل:
-
Tweenها (انیمیشنهای تکی)
-
Timelineهای فرزند (Child Timelines)
-
add(childTimeline, position)
زمان شروع تایملاین فرزند را مشخص میکند ("start"
,"+=1"
,"<"
و …).
🎛️ کنترل مجزا
هر Timeline (والد یا فرزند) شیء مستقل است:
-
توقف/اجرا روی والد باعث توقف/اجرای فرزندها هم میشود، مگر اینکه خود فرزند متوقف باشد.
🏷️ برچسبها و مدیریت زمان
برای هماهنگی بهتر از Label استفاده کنید:
همچنین میتوانید هنگام اضافه کردن فرزند، برچسب مشخص کنید:
♻️ Reusable Timelines
اگر یک انیمیشن قرار است در چند جا استفاده شود، آن را در یک تابع بسازید:
این روش کد را تمیز و قابل نگهداری میکند.
⚡ نکات حرفهای
-
نسبت سرعت: با
()timeScale
میتوانید سرعت فرزند را تغییر دهید بدون اثر روی والد. -
رویدادها: رویدادهای
onComplete
،onStart
روی هر Timeline مستقل عمل میکند. -
Revert/Context: در پروژههای بزرگ React/SPA از
()gsap.context
برای پاکسازی خودکار انیمیشنهای تو در تو استفاده کنید.
✅ خلاصه
-
ایجاد Timeline فرزند → انیمیشنهای تکی یا توالی خاص.
-
افزودن به Timeline والد با
add(child, position)
. -
کنترل مستقل هر Timeline (play, pause, seek, progress).
-
Labels و timeScale برای هماهنگی دقیق.
-
استفاده از توابع سازنده برای انیمیشنهای تکرارپذیر.
این رویکرد باعث میشود حتی با چندین لایه انیمیشن، پروژه ساختارمند، قابل نگهداری و قابل کنترل در لحظه باقی بماند.