انیمیشنها (Animations)
ساخت انیمیشنهای پیچیده با @keyframes: چند مرحلهای، تکرار و تاخیر
انیمیشن CSS
انیمیشنها (@keyframes) امکان ایجاد انیمیشنهای چند مرحلهای و پیچیده را فراهم میکنند.
ساختار @keyframes
@keyframes name {
0% { opacity: 0; }
50% { opacity: 0.5; }
100% { opacity: 1; }
}
/* یا with from/to */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
اعمال انیمیشن
.box {
animation: fadeIn 2s ease infinite;
}
ویژگیهای animation
| ویژگی | توضیح |
|---|---|
animation-name | نام @keyframes |
animation-duration | مدت زمان |
animation-timing-function | نحوه تغییر |
animation-delay | تأخیر |
animation-iteration-count | تعداد تکرار (infinite) |
animation-direction | جهت (reverse, alternate) |
animation-fill-mode | حالت پایانی (forwards) |
انیمیشنهای محبوب
/* Fade In */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
/* Slide In */
@keyframes slideIn {
from { transform: translateX(-100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
/* Bounce */
@keyframes bounce {
0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
40% { transform: translateY(-30px); }
60% { transform: translateY(-15px); }
}
/* Pulse */
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
/* Spin */
@keyframes spin {
to { transform: rotate(360deg); }
}
animation-direction
| مقدار | توضیح |
|---|---|
normal | نرمال (پیشفرض) |
reverse | معکوس |
alternate | نرمال سپس معکوس |
alternate-reverse | معکوس سپس نرمال |
animation-fill-mode
/* حالت پایانی حفظ شود */
animation-fill-mode: forwards;
/* حالت اولیه قبل از شروع */
animation-fill-mode: backwards;
/* هر دو */
animation-fill-mode: both;
چند انیمیشن
.box {
animation: fadeIn 1s, slideIn 1s 0.5s;
}
بهترین شیوهها
- از
transformوopacityبرای انیمیشن استفاده کنید (بهینهتر) will-changeبرای عناصر انیمیشنیprefers-reduced-motionرا رعایت کنید- انیمیشنهای طولانی کاربر را خسته میکنند
نکات مهم
animation: noneبرای لغوforwardsحالت پایانی را حفظ میکندalternateبرای حرکت رفتوبرگشتیpausedبرای توقف موقت
این مبحث بخشی از دوره آموزش کامل CSS است.