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 میتوانند خارج از این محدوده باشند تا به اثرهای بیشتر دست پیدا کنید.
در 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، میتوانید آن را در 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.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، ایجاد حرکتهای پرشی است که با تنظیم مقادیر 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.com برای آزمایش و مشاهده تأثیر مقادیر cubic-bezier استفاده کنید تا بتوانید منحنیهای زمانی مناسب را به راحتی بسازید.
آزمایش انیمیشنها با مدتزمانهای مختلف: بعضی از منحنیهای cubic-bezier برای زمانهای کوتاه مناسب هستند، در حالی که برخی دیگر برای انیمیشنهای طولانیتر بهتر عمل میکنند.
در نظر گرفتن تجربه کاربری: استفاده زیاد از منحنیهای پیچیده میتواند تجربه کاربری را تحت تأثیر قرار دهد، بنابراین از منحنیهای زمانی برای بهبود تجربه کاربری استفاده کنید و نه برای گیج کردن کاربر.
شروع با مقادیر استاندارد: ابتدا از مقادیر رایج cubic-bezier استفاده کنید و سپس مقادیر را برای نیازهای خاص خود تنظیم کنید.
cubic-bezier یک ابزار قدرتمند برای ساخت انیمیشنهای سفارشی و خلاقانه در CSS است. با استفاده از این تابع، میتوانید حرکتهای طبیعی و واکنشپذیر ایجاد کنید که به تجربه کاربری بهتری منجر میشود. با تمرین و آزمایش، میتوانید به انیمیشنهایی با جلوههای بصری خاص دست یابید که به طراحیهای وبسایت شما جذابیت و عمق بیشتری میبخشند.
نظری یافت نشد
JSX و رندرینگ مؤثر در React.js: بهینهسازی کامپوننتها و بهبود عملکرد
28م شهریور 1402
مطالعه بیشتر
آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع
6م شهریور 1402
مطالعه بیشتر
آموزش انیمیشنهای پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحلهای
18م شهریور 1402
مطالعه بیشتر
مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثالها
30م مهر 1403
مطالعه بیشتر
استفاده از Flexbox در CSS برای چیدمانهای مدرن: راهنمای جامع و کاربردی
10م آبان 1403
مطالعه بیشتر
آموزش قالببندی متن در HTML: استفاده از تگها و CSS برای استایلدهی
23م مرداد 1402
مطالعه بیشتر
آموزش تگهای متنی اولیه در HTML: استایلدهی و قالببندی متنها
18م مرداد 1402
مطالعه بیشتر
الگوهای رایج برنامهنویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثالها
1م آبان 1403
مطالعه بیشتر
آموزش تغییر المانهای DOM: ویرایش متن، سبکها و کلاسها در جاوا اسکریپت - راهنمای کامل با مثالها
2م آبان 1403
مطالعه بیشتر
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنشگرا
11م آبان 1403
مطالعه بیشتر
آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکههای پیچیده و واکنشگرا راهنمای کامل
6م شهریور 1402
مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیکهای مقیاسپذیر
16م آبان 1403
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد