Snapping (چسباندن مقادیر به step خاص)
در GSAP، Snapping به شما اجازه میدهد مقادیر انیمیشن را به نزدیکترین گام (step) مشخص یا مقادیر دلخواه) بچسبانید، تا حرکت دقیقتر، گسسته یا منظم باشد.
این قابلیت معمولاً با modifiers و توابع کمککننده مانند ()gsap.utils.snap
استفاده میشود.
🟢 1️⃣ تابع پایه snap
GSAP یک تابع آماده برای Snap دارد:
-
step: فاصله یا آرایه مقادیر مجاز
-
value: مقدار ورودی
-
خروجی: نزدیکترین مقدار مجاز به
value
🟡 2️⃣ Snapping با مقدار ثابت (Step)
فرض کنید میخواهیم المان در هر 50px بچسبد:
-
خروجی: x = 0, 50, 100, 150, …, 350
-
مقدار واقعی به نزدیکترین مضرب 50 گرد میشود.
🟠 3️⃣ Snapping به آرایه مقادیر
میتوانیم لیست خاصی از مقادیر را تعریف کنیم:
-
خروجی: x = 150 (نزدیکترین مقدار به 123 در آرایه)
🟣 4️⃣ Snapping با Modifier در حرکت پویا
میتوانیم Snap را با انیمیشن پویا یا Stagger ترکیب کنیم:
-
هر توپ به نزدیکترین 50px میچسبد، حتی اگر مقدار تصادفی باشد.
🟤 5️⃣ ترکیب با Rotation یا Scale
-
این روش عالی برای چرخش گسسته یا چرخ فلکها است.
⚡ نکات حرفهای
-
Stagger + Snap: میتوان انیمیشن گروهی با چسبندگی منظم ایجاد کرد.
-
Modifier + Snap: همزمان با انیمیشن، مقادیر را اصلاح میکند و نیاز به
onUpdate
ندارد. -
Custom Snap: میتوانید تابع دلخواه بدهید:
-
این تقریباً همان کاری است که
()gsap.utils.snap
انجام میدهد.
✅ جمعبندی
ویژگی | توضیح |
---|---|
gsap.utils.snap(step, value) | چسباندن مقدار به نزدیکترین Step یا مقدار در آرایه |
کاربرد | حرکت گسسته، rotation چرخشی، کارتها یا اسلایدرها |
ترکیب با | modifiers , stagger , repeat , timeline |
Snapping به شما امکان میدهد حرکتها را منظم، گسسته و قابل پیشبینی کنید، بدون پیچیدگی زیاد و با ترکیب ساده با سایر قابلیتهای GSAP.