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

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

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

Cubic-bezier یک تابع پیشرفته در CSS است که به شما امکان می‌دهد منحنی‌های زمانی سفارشی برای انیمیشن‌ها ایجاد کنید و حرکت عناصر را به شکلی دقیق‌تر و طبیعی‌تر کنترل کنید. با استفاده از این تابع، می‌توانید انیمیشن‌های پیچیده و جذابی ایجاد کنید که از حالت‌های زمانی استاندارد فراتر بروند. این مقاله به شما کمک می‌کند تا با تابع cubic-bezier، نحوه استفاده و ساخت منحنی‌های زمانی سفارشی در CSS آشنا شوید.

 

مفهوم cubic-bezier و کاربرد آن در CSS

تابع cubic-bezier در CSS به شما امکان می‌دهد که منحنی زمان‌بندی انیمیشن را به صورت سفارشی تنظیم کنید. این تابع با استفاده از چهار مقدار، یک منحنی بسازید که حرکت و سرعت تغییرات انیمیشن را مشخص می‌کند.



.element {
  transition: all 2s cubic-bezier(x1, y1, x2, y2);
}

 

هر یک از این چهار مقدار نشان‌دهنده مختصات دو نقطه کنترلی است که با کمک آن‌ها، منحنی تغییر سرعت انیمیشن ایجاد می‌شود.

  • (x1, y1): مختصات نقطه کنترلی اول که شروع انیمیشن را تنظیم می‌کند.

  • (x2, y2): مختصات نقطه کنترلی دوم که انتهای انیمیشن را تنظیم می‌کند.

مقادیر x باید بین 0 و 1 باشد و مقادیر y می‌توانند خارج از این محدوده باشند تا به اثرهای بیشتر دست پیدا کنید.

 

انیمیشن‌های استاندارد و جایگزینی آن‌ها با cubic-bezier

در CSS، حالت‌های زمانی استانداردی مانند ease، ease-in، ease-out و ease-in-out وجود دارند. شما می‌توانید با cubic-bezier حالت‌های زمانی مشابه یا سفارشی‌تر ایجاد کنید.

مثال حالت‌های استاندارد با cubic-bezier

  • ease: cubic-bezier(0.25, 0.1, 0.25, 1)

  • ease-in: cubic-bezier(0.42, 0, 1, 1)

  • ease-out: cubic-bezier(0, 0, 0.58, 1)

  • ease-in-out: cubic-bezier(0.42, 0, 0.58, 1)

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

 

نحوه استفاده از cubic-bezier در CSS

برای استفاده از cubic-bezier، می‌توانید آن را در transition یا animation به عنوان تابع زمان‌بندی اعمال کنید.

مثال ساده از cubic-bezier برای یک transition



.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition: transform 1s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

.box:hover {
  transform: scale(1.5);
}

 

در اینجا:

  • cubic-bezier(0.68, -0.55, 0.27, 1.55) انیمیشن را به گونه‌ای تنظیم کرده که ابتدا سرعت بالایی داشته باشد و سپس با نرمی به پایان برسد.

مثال استفاده از cubic-bezier در keyframes



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

.ball {
  animation: bounce 2s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite;
}

 

در اینجا:

  • از cubic-bezier برای ایجاد انیمیشنی با جلوه bounce (پریدن) استفاده شده است که حرکت رفت و برگشتی دارد.

 

نحوه انتخاب مقادیر مناسب برای cubic-bezier

برای انتخاب مقادیر مناسب cubic-bezier، می‌توانید از ابزارهایی مانند cubic-bezier.com استفاده کنید. این ابزار به شما امکان می‌دهد تا مقادیر x1، y1، x2، و y2 را تغییر دهید و اثر منحنی را به صورت زنده مشاهده کنید.

مثال از منحنی‌های محبوب با cubic-bezier

  • انیمیشن با شروع سریع و پایان کند: cubic-bezier(0.5, 0, 1, 1)

  • انیمیشن نرمی که سریع شروع و آرام پایان می‌یابد: cubic-bezier(0.6, 0.05, 0.28, 0.91)

  • حرکت شبیه به پرش: cubic-bezier(0.68, -0.55, 0.27, 1.55)

این منحنی‌ها به شما کمک می‌کنند که حرکت‌های جالب و سفارشی ایجاد کنید که به انیمیشن‌های شما عمق و حس طبیعی می‌دهد.

 

کاربردهای رایج cubic-bezier در طراحی وب

ایجاد افکت‌های پرشی (Bounce)

یکی از کاربردهای جذاب cubic-bezier، ایجاد حرکت‌های پرشی است که با تنظیم مقادیر y بزرگ‌تر از 1 می‌توانید به این افکت برسید.



.jump {
  transition: transform 0.5s cubic-bezier(0.5, -0.5, 0.5, 1.5);
}

.jump:hover {
  transform: translateY(-20px);
}

 

در اینجا:

  • cubic-bezier(0.5, -0.5, 0.5, 1.5) باعث می‌شود که عنصر هنگام حرکت رفت و برگشت، به حالت پرشی ظاهر شود.

 

ایجاد حرکت‌های طبیعی برای اسلایدرها



.slider {
  transition: transform 0.7s cubic-bezier(0.5, 0, 0.5, 1);
}

 

در اینجا:

  • cubic-bezier(0.5, 0, 0.5, 1) انیمیشنی طبیعی برای حرکت عناصر اسلایدر ایجاد می‌کند که برای نمایش نرم و آرام اسلاید‌ها مناسب است.

 

ایجاد انیمیشن دکمه با حرکات سریع



.button {
  transition: background-color 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.button:hover {
  background-color: #ff6347;
}

 

در اینجا:

  • cubic-bezier(0.25, 1, 0.5, 1) دکمه را با حرکتی سریع و واکنش‌پذیر تغییر رنگ می‌دهد که به آن حس تعاملی بیشتری می‌بخشد.

 

نکات و بهترین شیوه‌ها برای استفاده از cubic-bezier

  • استفاده از ابزارهای آنلاین: از ابزارهایی مانند cubic-bezier.com برای آزمایش و مشاهده تأثیر مقادیر cubic-bezier استفاده کنید تا بتوانید منحنی‌های زمانی مناسب را به راحتی بسازید.

  • آزمایش انیمیشن‌ها با مدت‌زمان‌های مختلف: بعضی از منحنی‌های cubic-bezier برای زمان‌های کوتاه مناسب هستند، در حالی که برخی دیگر برای انیمیشن‌های طولانی‌تر بهتر عمل می‌کنند.

  • در نظر گرفتن تجربه کاربری: استفاده زیاد از منحنی‌های پیچیده می‌تواند تجربه کاربری را تحت تأثیر قرار دهد، بنابراین از منحنی‌های زمانی برای بهبود تجربه کاربری استفاده کنید و نه برای گیج کردن کاربر.

  • شروع با مقادیر استاندارد: ابتدا از مقادیر رایج cubic-bezier استفاده کنید و سپس مقادیر را برای نیازهای خاص خود تنظیم کنید.

 

نتیجه‌گیری

cubic-bezier یک ابزار قدرتمند برای ساخت انیمیشن‌های سفارشی و خلاقانه در CSS است. با استفاده از این تابع، می‌توانید حرکت‌های طبیعی و واکنش‌پذیر ایجاد کنید که به تجربه کاربری بهتری منجر می‌شود. با تمرین و آزمایش، می‌توانید به انیمیشن‌هایی با جلوه‌های بصری خاص دست یابید که به طراحی‌های وب‌سایت شما جذابیت و عمق بیشتری می‌بخشند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

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

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

مطالعه بیشتر
آموزش جامع و گام‌به‌گام حلقه for در PHP + مثال‌های کاربردی
4م تیر 1405

آموزش جامع و گام‌به‌گام حلقه for در PHP + مثال‌های کاربردی

مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها
28م شهریور 1402

آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها

مطالعه بیشتر
تفاوت متد GET و POST در PHP؛ راهنمای جامع و استاندارد گوگل
27م تیر 1405

تفاوت متد GET و POST در PHP؛ راهنمای جامع و استاندارد گوگل

مطالعه بیشتر
آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)
4م تیر 1405

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

مطالعه بیشتر
استفاده از font face در CSS برای اضافه کردن فونت‌های سفارشی: راهنمای کامل
16م آبان 1403

استفاده از font face در CSS برای اضافه کردن فونت‌های سفارشی: راهنمای کامل

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

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

مطالعه بیشتر
راهنمای جامع پاک‌سازی داده‌های ورودی در PHP بر اساس استانداردهای گوگل
27م تیر 1405

راهنمای جامع پاک‌سازی داده‌های ورودی در PHP بر اساس استانداردهای گوگل

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

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

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

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

مطالعه بیشتر
آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var
18م شهریور 1402

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

مطالعه بیشتر

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