انیمیشنهای پیشرفته با Flip و Draggable
این دو پلاگین امکان ساخت انیمیشنهای UI تعاملی و حرفهای را فراهم میکنند:
-
Flip: برای جابهجایی یا تغییر Layout بدون از دست دادن موقعیت شروع.
-
Draggable: برای کشیدن (drag) المانها با ماوس یا لمس، همراه با اینرسی و محدودیتها.
🟢 1. Flip Plugin
وقتی ساختار یا اندازهی یک عنصر تغییر کند (مثلاً کارت از لیست به گرید جابهجا شود)، Flip تغییر مکان، اندازه و چرخش را محاسبه کرده و انیمیشن میدهد.
نصب
مثال: جابهجایی کارتها
-
Flip.getState() موقعیت فعلی را ذخیره میکند.
-
پس از تغییر DOM،
Flip.from(state)
انتقال نرم ایجاد میکند.
🟡 2. Draggable Plugin
برای کشیدن عناصر و حتی اعمال محدودیتها یا اینرسی (مانند اسکرول لمسی).
نصب
مثال پایه
-
bounds
میتواند یک عنصر والد یا شیء {top, left, width, height} باشد. -
برای اینرسی، پلاگین InertiaPlugin نیاز است (Club GreenSock).
🟠 ترکیب Flip + Draggable
سناریو: جابهجایی کارتها با کشیدن
-
کارت را Draggable کنید تا کاربر آن را حرکت دهد.
-
هنگام رها کردن، کارت را به جایگاه جدید بچسبانید.
-
از Flip برای انیمیشن بازچینی بقیه کارتها استفاده کنید.
💡 نکات حرفهای
-
Performance: هنگام تعداد زیاد عناصر،
will-change: transform
برای کارتها فعال کنید. -
Flip + ScrollTrigger: میتوانید همزمان تغییر مکان و واکنش به اسکرول را کنترل کنید.
-
Snap: در Draggable میتوان به نزدیکترین نقطه (grid snapping) قفل کرد:
-
Accessibility: برای تعاملات کیبوردی یا حالتهای بدون ماوس، نقش ARIA و فوکوس را لحاظ کنید.
✅ جمعبندی
-
Flip برای انیمیشن جابهجایی یا تغییر Layout بدون محاسبه دستی مختصات.
-
Draggable برای کشیدن/رهاکردن عناصر با محدودیت، اینرسی و اسنپ.
-
ترکیب آنها امکان ساخت رابطهای تعاملی پیچیده مثل مرتبسازی کارتها، بُردهای Kanban، گالریهای کشیدنی و UIهای کاملاً پویا را فراهم میکند.