انتقالها (Transitions)
آشنایی با transition در CSS: انیمیشن نرم بین دو حالت با control کامل
Transition در CSS
transition اجازه میدهد تغییرات CSS بهصورت نرم و انیمیشنی انجام شوند، نه ناگهانی.
چهار ویژگی transition
| ویژگی | توضیح | مثال |
|---|---|---|
transition-property | کدام ویژگی | all, color |
transition-duration | مدت زمان | 0.3s |
transition-timing-function | نحوه تغییر | ease, linear |
transition-delay | تأخیر | 0.5s |
Shorthand
.box {
/* property duration timing delay */
transition: all 0.3s ease 0s;
/* یا سادهتر */
transition: 0.3s;
}
یک ویژگی خاص
.btn {
transition: background 0.3s, transform 0.2s;
}
timing-function
| مقدار | توضیح |
|---|---|
ease | آرام شروع، تند وسط، آرام پایان (پیشفرض) |
linear | یکنواخت |
ease-in | آرام شروع، تند پایان |
ease-out | تند شروع، آرام پایان |
ease-in-out | آرام دو طرف |
cubic-bezier() | سفارشی |
چه چیزی میتوان transition کرد؟
/* ✅ قابل transition */
color, background, opacity, transform, border, margin, padding, box-shadow
/* ❌ غیرقابل transition (مثل) */
display, position
مثالهای کاربردی
/* دکمه */
.btn {
background: #3498db;
transition: all 0.3s ease;
}
.btn:hover {
background: #2980b9;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(52,152,219,0.4);
}
/* کارت */
.card {
transition: transform 0.3s, box-shadow 0.3s;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}
بهترین شیوهها
- بهجای
all، ویژگیهای خاص را مشخص کنید (سریعتر) - مدت زمان
0.2sتا0.4sبرای افکتهای UI - از
transformبهجایmargin/widthبرای انیمیشن ease-outبرای ورود،ease-inبرای خروج- transition را روی عنصر اصلی بگذارید، نه روی hover
نکات مهم
- transition روی
display: none ↔ blockکار نمیکند - برای انیمیشن ورود/خروج، از
opacity+visibilityاستفاده کنید transformوopacityبهترین عملکرد را دارند- transition فقط بین دو مقدار کار میکند — برای چند مرحله از
animationاستفاده کنید
این مبحث بخشی از دوره آموزش کامل CSS است.