آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

دسته : آموزش رایگان CSS

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

انیمیشن‌ها در CSS به شما این امکان را می‌دهند که عناصر وب‌سایت را به صورت پویا و جذاب نمایش دهید. Keyframes یکی از قابلیت‌های قدرتمند CSS برای ایجاد انیمیشن‌های چند مرحله‌ای و پیچیده است. با استفاده از keyframes، می‌توانید حرکت‌ها و تغییرات را در مراحل مختلف تعیین کنید و به عناصر خود جلوه‌های بصری فوق‌العاده‌ای ببخشید. در این مقاله، نحوه استفاده از keyframes برای ساخت انیمیشن‌های پیشرفته را بررسی می‌کنیم و مثال‌هایی از طراحی حرکات پویا و چند مرحله‌ای ارائه می‌دهیم.

 

انیمیشن با keyframes چیست؟

keyframes یک ویژگی در CSS است که به شما اجازه می‌دهد یک انیمیشن با چندین مرحله یا تغییر ایجاد کنید. به کمک keyframes می‌توانید تغییراتی مانند حرکت، تغییر رنگ، چرخش، و بزرگ‌نمایی را در درصدهای مختلف زمان‌بندی انیمیشن مشخص کنید.

 

نحوه تعریف keyframes

برای تعریف انیمیشن با keyframes، ابتدا از @keyframes استفاده می‌کنیم و سپس مراحل و تغییرات را در داخل آن تعیین می‌کنیم.



@keyframes animationName {
  0% { /* استایل شروع انیمیشن */ }
  50% { /* استایل میانه انیمیشن */ }
  100% { /* استایل پایان انیمیشن */ }
}

 

نحوه اعمال انیمیشن با keyframes به عناصر

برای اعمال انیمیشن به عناصر، از ویژگی animation استفاده می‌کنیم. این ویژگی شامل چندین زیرخصوصیت مهم است که می‌توانند کنترل کاملی بر زمان‌بندی، نوع حرکت و دفعات تکرار انیمیشن داشته باشند:

  • animation-name: نام انیمیشنی که در keyframes تعریف شده است.

  • animation-duration: مدت زمان اجرای انیمیشن.

  • animation-timing-function: نوع حرکت انیمیشن (مانند ease، linear، ease-in، ease-out).

  • animation-delay: تأخیر در شروع انیمیشن.

  • animation-iteration-count: تعداد دفعات تکرار انیمیشن (مقدار infinite برای تکرار بی‌نهایت).

  • animation-direction: جهت انیمیشن (مانند normal، reverse، alternate).

 

مثال ساده از انیمیشن چند مرحله‌ای با keyframes

در مثال زیر، عنصری را ایجاد می‌کنیم که از سمت چپ به سمت راست حرکت می‌کند و سپس به رنگ قرمز تغییر می‌یابد.



@keyframes slideAndChangeColor {
  0% {
    transform: translateX(0);
    background-color: blue;
  }
  50% {
    transform: translateX(100px);
    background-color: green;
  }
  100% {
    transform: translateX(200px);
    background-color: red;
  }
}

.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  animation: slideAndChangeColor 4s ease-in-out infinite;
}

 

در اینجا:

  • عنصر .box با نام انیمیشن slideAndChangeColor در طول 4 ثانیه و به صورت بی‌نهایت حرکت می‌کند.

  • transform و background-color در مراحل 0%، 50% و 100% تغییر می‌کنند.

 

کنترل زمان‌بندی و تکرار انیمیشن با animation-iteration-count و animation-direction

می‌توانید تعداد دفعات تکرار و جهت اجرای انیمیشن را با استفاده از animation-iteration-count و animation-direction کنترل کنید.

مثال از تکرار و تغییر جهت انیمیشن



@keyframes bounce {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-50px);
  }
  100% {
    transform: translateY(0);
  }
}

.bounce-box {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  animation: bounce 1s ease infinite alternate;
}

 

در اینجا:

  • عنصر .bounce-box با نام انیمیشن bounce به طور نامحدود و با جهت alternate حرکت می‌کند، یعنی از بالا به پایین و برعکس تکرار می‌شود.

 

ایجاد انیمیشن‌های پیچیده با keyframes

می‌توانید با افزودن مراحل بیشتر به keyframes، انیمیشن‌های پیچیده‌تری ایجاد کنید. در مثال زیر، با ایجاد تغییرات چند مرحله‌ای، یک انیمیشن گردشی با تغییر رنگ ایجاد کرده‌ایم.



@keyframes rotateAndColorChange {
  0% {
    transform: rotate(0deg);
    background-color: red;
  }
  25% {
    transform: rotate(90deg);
    background-color: yellow;
  }
  50% {
    transform: rotate(180deg);
    background-color: green;
  }
  75% {
    transform: rotate(270deg);
    background-color: blue;
  }
  100% {
    transform: rotate(360deg);
    background-color: red;
  }
}

.square {
  width: 100px;
  height: 100px;
  animation: rotateAndColorChange 4s linear infinite;
}

 

در اینجا:

  • عنصر .square در طول 4 ثانیه 360 درجه می‌چرخد و رنگ آن در مراحل مختلف تغییر می‌کند.

 

ایجاد انیمیشن‌های هماهنگ و چند عنصری با استفاده از delay

با استفاده از animation-delay می‌توانید انیمیشن‌ها را به صورت هماهنگ و با تاخیرهای مختلف بر روی چندین عنصر اعمال کنید.

مثال انیمیشن هماهنگ روی چندین دایره



@keyframes fadeInOut {
  0%, 100% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
}

.circle {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #3498db;
  animation: fadeInOut 2s ease-in-out infinite;
}

.circle:nth-child(1) {
  animation-delay: 0s;
}

.circle:nth-child(2) {
  animation-delay: 0.5s;
}

.circle:nth-child(3) {
  animation-delay: 1s;
}

 

در اینجا:

  • سه دایره با تاخیرهای مختلف محو و نمایان می‌شوند، ایجاد یک انیمیشن هماهنگ و زیبا.

 

استفاده از Timing Functions برای کنترل حرکت انیمیشن

با استفاده از animation-timing-function می‌توانید نوع حرکت انیمیشن را تعیین کنید. Timing Functionهایی مانند ease، linear، ease-in، ease-out و ease-in-out تغییرات سرعت انیمیشن را کنترل می‌کنند.

مثال استفاده از timing-function های مختلف



@keyframes slide {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(200px);
  }
}

.slide-box-ease {
  animation: slide 2s ease;
}

.slide-box-linear {
  animation: slide 2s linear;
}

.slide-box-ease-in-out {
  animation: slide 2s ease-in-out;
}

 

در اینجا:

  • هر عنصر با نوع حرکت متفاوتی انیمیشن می‌شود و می‌توان تفاوت حرکت‌ها را مشاهده کرد.

 

افکت‌های چند مرحله‌ای پیچیده با استفاده از keyframes

در این مثال یک انیمیشن پیچیده ایجاد می‌کنیم که شامل ترکیبی از چرخش، تغییر اندازه، و تغییر رنگ است.



@keyframes complexAnimation {
  0% {
    transform: scale(1) rotate(0deg);
    background-color: #3498db;
  }
  25% {
    transform: scale(1.2) rotate(45deg);
    background-color: #e74c3c;
  }
  50% {
    transform: scale(0.8) rotate(90deg);
    background-color: #2ecc71;
  }
  75% {
    transform: scale(1.5) rotate(135deg);
    background-color: #9b59b6;
  }
  100% {
    transform: scale(1) rotate(180deg);
    background-color: #3498db;
  }
}

.complex-box {
  width: 100px;
  height: 100px;
  animation: complexAnimation 5s infinite ease-in-out;
}

 

در اینجا:

عنصر .complex-box در طی انیمیشن ترکیبی از چرخش، تغییر اندازه، و تغییر رنگ را تجربه می‌کند و این افکت در طول 5 ثانیه تکرار می‌شود.

 

نکات و بهترین شیوه‌ها برای استفاده از انیمیشن‌های CSS

  • انیمیشن‌ها را بهینه کنید: از انیمیشن‌های پیچیده و طولانی به صورت افراطی استفاده نکنید، زیرا ممکن است عملکرد صفحه را کاهش دهد.

  • هماهنگی و سازگاری با طراحی کلی: انیمیشن‌ها باید با طراحی و تجربه کاربری وب‌سایت همخوانی داشته باشند و نباید کاربر را سردرگم کنند.

  • تست در دستگاه‌های مختلف: انیمیشن‌ها را در دستگاه‌ها و مرورگرهای مختلف تست کنید تا از نمایش درست آن‌ها مطمئن شوید.

 

نتیجه‌گیری

انیمیشن‌های CSS با استفاده از keyframes به شما این امکان را می‌دهند تا حرکات پیچیده و جذابی را ایجاد کنید که تجربه کاربری را بهبود می‌بخشد و وب‌سایت شما را از نظر بصری متمایز می‌کند. با استفاده از این ابزار قدرتمند، می‌توانید تغییرات مرحله‌ای، حرکت‌ها و افکت‌های تعاملی مختلفی ایجاد کنید و یک وب‌سایت پویا و جذاب طراحی کنید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش مدیریت Box Model و ترکیب اجزای آن با CSS: کنترل دقیق فاصله‌ها و ابعاد عناصر

آموزش مدیریت Box Model و ترکیب اجزای آن با CSS: کنترل دقیق فاصله‌ها و ابعاد عناصر

5م شهریور 1402

مطالعه بیشتر

نصب Node.js و Create React App: شروع پروژه‌های React.js به‌صورت آسان

نصب Node.js و Create React App: شروع پروژه‌های React.js به‌صورت آسان

28م شهریور 1402

مطالعه بیشتر

آموزش ایجاد و حذف المان‌های DOM به صورت داینامیک با جاوا اسکریپت: راهنمای جامع و کاربردی

آموزش ایجاد و حذف المان‌های DOM به صورت داینامیک با جاوا اسکریپت: راهنمای جامع و کاربردی

2م آبان 1403

مطالعه بیشتر

عملگرها و عبارات محاسباتی در جاوا اسکریپت: نحوه استفاده و کاربردهای مختلف

عملگرها و عبارات محاسباتی در جاوا اسکریپت: نحوه استفاده و کاربردهای مختلف

28م شهریور 1402

مطالعه بیشتر

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

11م آبان 1403

مطالعه بیشتر

آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثال‌ها و مفاهیم

آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثال‌ها و مفاهیم

29م مهر 1403

مطالعه بیشتر

آموزش تکنیک‌های پیشرفته CSS Grid: طراحی ساختارهای پیچیده و واکنش‌گرا

آموزش تکنیک‌های پیشرفته CSS Grid: طراحی ساختارهای پیچیده و واکنش‌گرا

18م شهریور 1402

مطالعه بیشتر

آموزش استایل‌دهی لینک‌ها در CSS: طراحی و تنظیمات ساده برای لینک‌های HTML

آموزش استایل‌دهی لینک‌ها در CSS: طراحی و تنظیمات ساده برای لینک‌های HTML

7م شهریور 1402

مطالعه بیشتر

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

28م شهریور 1402

مطالعه بیشتر

آموزش ترانزیشن‌ها و انیمیشن‌های نرم با CSS: ایجاد افکت‌های پویا و واکنش‌گرا

آموزش ترانزیشن‌ها و انیمیشن‌های نرم با CSS: ایجاد افکت‌های پویا و واکنش‌گرا

10م شهریور 1402

مطالعه بیشتر

آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا

آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا

18م شهریور 1402

مطالعه بیشتر

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

2م شهریور 1403

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد