اگر Transitions را برای تغییرات ساده و نرم بین دو حالت در نظر بگیریم، Keyframes (فریم‌های کلیدی) در CSS ابزاری هستند که به ما اجازه می‌دهند انیمیشن‌های بسیار پیچیده‌تر، چندمرحله‌ای و سفارشی‌سازی شده بسازیم. این روش شبیه به ساخت یک فیلم کارتونی است که در آن، شما نقاط کلیدی (Keyframes) در طول زمان را مشخص می‌کنید و CSS خودش حرکات بین این نقاط را محاسبه و اجرا می‌کند.

مفهوم Keyframes

Keyframes به شما این امکان را می‌دهند که در نقاط زمانی مختلف یک انیمیشن، ظاهر و وضعیت یک عنصر را دقیقاً مشخص کنید. شما می‌توانید انیمیشنی را تعریف کنید که یک عنصر مثلاً:

  • از نقطه A شروع کند.
  • در میانه‌ی راه به نقطه B برسد.
  • کمی بچرخد.
  • رنگش تغییر کند.
  • و در نهایت در نقطه C متوقف شود.

این انعطاف‌پذیری بالا، امکان ساخت انیمیشن‌های بسیار خلاقانه و پویا را فراهم می‌کند.

چگونگی تعریف Keyframes

برای ساخت انیمیشن با Keyframes، دو مرحله اصلی وجود دارد:

  1. تعریف انیمیشن (با استفاده از @keyframes):
  • شما یک نام برای انیمیشن خود انتخاب می‌کنید (مثلاً slideAndFade یا bounceEffect).
  • سپس، وضعیت‌های مختلف انیمیشن را در نقاط زمانی مشخص تعریف می‌کنید. این نقاط معمولاً با درصد بیان می‌شوند:
  • 0% (یا from): نشان‌دهنده شروع انیمیشن.
  • 100% (یا to): نشان‌دهنده پایان انیمیشن.
  • می‌توانید فریم‌های میانی دیگری نیز اضافه کنید (مثلاً 25%, 50%, 75%) تا کنترل بیشتری بر مسیر انیمیشن داشته باشید.
  • در هر فریم کلیدی، شما ویژگی‌های CSS مورد نظرتان را که می‌خواهید تغییر کنند، مشخص می‌کنید.
  1. اعمال انیمیشن به یک عنصر:
  • پس از تعریف انیمیشن، باید آن را به عنصر دلخواه خود اعمال کنید. این کار با استفاده از ویژگی animation (یا ویژگی‌های زیرمجموعه‌ی آن) انجام می‌شود.
  • ویژگی‌های کلیدی که برای اعمال انیمیشن استفاده می‌شوند عبارتند از:
  • animation-name: نام انیمیشنی که تعریف کرده‌اید (slideAndFade در مثال بالا).
  • animation-duration: مدت زمان کلی اجرای انیمیشن (مثلاً 3s).
  • animation-timing-function: سرعت اجرای انیمیشن در طول زمان (مثلاً ease-in-out).
  • animation-delay: تأخیر قبل از شروع انیمیشن.
  • animation-iteration-count: تعداد دفعاتی که انیمیشن باید تکرار شود (مثلاً infinite برای تکرار بی‌نهایت).
  • animation-direction: جهت اجرای انیمیشن (مثلاً alternate برای رفت و برگشت).
  • animation-fill-mode: تعیین می‌کند که استایل‌های حالت اول یا آخر انیمیشن قبل یا بعد از اجرای آن روی عنصر باقی بمانند یا خیر.

کاربردها

  • انیمیشن‌های پیچیده‌ی رابط کاربری: مانند افکت‌های ورود و خروج عناصر، انیمیشن‌های بارگذاری، یا جلوه‌های بصری خاص.
  • بازی‌های ساده تحت وب: ایجاد حرکات کاراکترها یا عناصر بازی.
  • لوگوهای متحرک یا بنرهای تبلیغاتی: جلب توجه کاربر با جلوه‌های بصری پویا.
  • توضیح مراحل یا فرآیندها: نمایش گام به گام یک عملیات با انیمیشن.

Keyframes در CSS به طراحان وب قدرت می‌دهد تا فراتر از تغییرات ساده رفته و انیمیشن‌های داستانی و پیچیده‌ای را مستقیماً در مرورگر ایجاد کنند، که این امر به زنده‌تر شدن و جذابیت بیشتر وب‌سایت‌ها کمک شایانی می‌کند.

کلیدواژه ها : CSS Animations-Keyframes-انیمیشن پیچیده-طراحی وب-جلوه‌های بصری-انیمیشن CSS-دستور @keyframes-ویژگی animation-