آموزش رایگان CSS

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

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

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

 

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

ترانزیشن‌ها (Transitions) به شما اجازه می‌دهند که تغییرات در ویژگی‌های CSS (مانند رنگ، اندازه، و موقعیت) به صورت نرم و روان اجرا شوند. این کار باعث می‌شود تا تغییرات به جای تغییر ناگهانی، با انیمیشنی ساده و جذاب به نمایش درآیند.

 

نحوه استفاده از ترانزیشن‌ها

برای ایجاد ترانزیشن، از ویژگی‌های transition-property، transition-duration، transition-timing-function و transition-delay استفاده می‌کنیم.

  • transition-property: ویژگی‌ای که می‌خواهید تغییر آن به صورت نرم باشد (مثل color، width).

  • transition-duration: مدت زمان اجرای ترانزیشن (به ثانیه یا میلی‌ثانیه).

  • transition-timing-function: نوع اجرای ترانزیشن مانند ease، linear، ease-in و ease-out.

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

مثال ساده ترانزیشن



.button {
  background-color: #3498db;
  color: white;
  padding: 10px 20px;
  border-radius: 5px;
  transition: background-color 0.3s ease, transform 0.3s;
}

.button:hover {
  background-color: #2980b9;
  transform: scale(1.1);
}

 

در اینجا:

  • background-color و transform به صورت نرم تغییر می‌کنند.

  • transition-duration مقدار 0.3 ثانیه دارد، یعنی تغییر رنگ پس‌زمینه و اندازه دکمه به آرامی در 0.3 ثانیه رخ می‌دهد.

 

استفاده از ترانزیشن‌های چندگانه

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

مثال استفاده از ترانزیشن‌های چندگانه



.card {
  width: 200px;
  height: 300px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
  transition: width 0.4s ease, height 0.4s ease, box-shadow 0.4s ease;
}

.card:hover {
  width: 220px;
  height: 320px;
  box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2);
}

 

در اینجا:

  • با حرکت موس روی کارت، عرض، ارتفاع و سایه کارت به صورت همزمان و نرم تغییر می‌کنند.

 

مفهوم انیمیشن‌ها در CSS

در CSS، انیمیشن‌ها (Animations) به شما امکان می‌دهند که تغییرات پیچیده‌تری را در عناصر ایجاد کنید. برخلاف ترانزیشن‌ها که فقط در حالت‌های hover و focus اجرا می‌شوند، انیمیشن‌ها می‌توانند به صورت خودکار و بدون نیاز به تعامل کاربر اجرا شوند.

 

مراحل ایجاد انیمیشن در CSS

  • تعریف انیمیشن با استفاده از ویژگی @keyframes.

  • استفاده از ویژگی animation برای تعیین نام انیمیشن، مدت زمان، زمان‌بندی و تعداد تکرار.

مثال ساده انیمیشن



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

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

 

در اینجا:

  • انیمیشنی با نام slide تعریف شده که باعث حرکت جعبه در جهت افقی می‌شود.

  • animation: slide 2s ease infinite باعث می‌شود که این حرکت به طور نامحدود تکرار شود و با زمان‌بندی ease و در مدت 2 ثانیه اجرا گردد.

 

ویژگی‌های انیمیشن در CSS

ویژگی‌های اصلی انیمیشن در CSS شامل موارد زیر است:

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

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

  • animation-timing-function: نوع حرکت انیمیشن.

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

  • animation-iteration-count: تعداد تکرار انیمیشن، مقدار infinite برای تکرار نامحدود.

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

مثال استفاده از ویژگی‌های انیمیشن



@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.icon {
  width: 50px;
  height: 50px;
  animation: rotate 3s linear infinite;
}

 

در اینجا:

  • آیکون در طول 3 ثانیه به صورت نامحدود و با حرکت یکنواخت (linear) می‌چرخد.

 

استفاده از انیمیشن‌های ترکیبی برای ایجاد افکت‌های پیچیده‌تر

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

مثال انیمیشن ترکیبی



@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes moveUp {
  0% {
    transform: translateY(30px);
  }
  100% {
    transform: translateY(0);
  }
}

.box {
  width: 100px;
  height: 100px;
  background-color: #3498db;
  animation: fadeIn 1s ease, moveUp 1s ease;
}

 

در اینجا، جعبه به صورت همزمان با دو افکت فید این (fade-in) و حرکت به بالا نمایش داده می‌شود.

 

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

  • استفاده از انیمیشن‌های نرم و کوتاه: برای بهبود تجربه کاربری، انیمیشن‌ها را کوتاه و نرم طراحی کنید. ترانزیشن‌های 0.2 تا 0.5 ثانیه معمولاً مناسب هستند.

  • پرهیز از انیمیشن‌های بیش از حد: استفاده زیاد از انیمیشن‌ها می‌تواند باعث کند شدن صفحه و خسته‌کننده شدن آن برای کاربران شود.

  • استفاده از انیمیشن‌های طبیعی: از انیمیشن‌های طبیعی مانند ease و ease-in-out برای تغییرات استفاده کنید تا تجربه کاربری بهتری ایجاد شود.

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

 

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

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

مثال ترکیبی از انیمیشن و ترانزیشن



@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

.button {
  padding: 10px 20px;
  background-color: #3498db;
  color: white;
  border-radius: 5px;
  animation: pulse 2s ease infinite;
  transition: background-color 0.3s;
}

.button:hover {
  background-color: #2980b9;
}

 

در اینجا:

  • دکمه با انیمیشن pulse به صورت مداوم کمی بزرگ و کوچک می‌شود.

  • وقتی موس روی دکمه قرار می‌گیرد، رنگ پس‌زمینه به صورت نرم تغییر می‌کند.

 

نتیجه‌گیری

ترانزیشن‌ها و انیمیشن‌ها در CSS ابزارهای قدرتمندی برای ایجاد وب‌سایت‌های پویا و جذاب هستند. با استفاده از این ابزارها می‌توانید تجربه کاربری را بهبود دهید و وب‌سایتی با افکت‌های نرم و واکنش‌گرا بسازید. به کارگیری این تکنیک‌ها به صورت اصولی و متناسب با محتوا می‌تواند وب‌سایت شما را حرفه‌ای‌تر و کاربرپسندتر کند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی
4م آبان 1403

مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی

مطالعه بیشتر
آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها
5م شهریور 1402

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها

مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر
16م آبان 1403

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

مطالعه بیشتر
آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب
15م خرداد 1405

آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب

مطالعه بیشتر
آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها
28م مهر 1403

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

مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
11م آبان 1403

آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر

مطالعه بیشتر
آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع
4م شهریور 1402

آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
24م آذر 1404

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML
13م خرداد 1405

آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

مطالعه بیشتر
آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای
12م آبان 1403

آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای

مطالعه بیشتر
مقدمه‌ای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان
4م شهریور 1402

مقدمه‌ای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان

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

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

مطالعه بیشتر

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