جلسه 63 – آموزش کامل استفاده از animation در CSS
ویژگی animation در CSS به شما این امکان را میدهد که بدون نیاز به جاوا اسکریپت، افکتهای متحرک و انیمیشنهای حرفهای ایجاد کنید.
با استفاده از @keyframes و ویژگیهای مرتبط با انیمیشن، میتوان حرکتهای متنوعی مانند تغییر رنگ، چرخش، تغییر اندازه و جابجایی را روی عناصر اعمال کرد.
در این مقاله، نحوه تعریف انیمیشن در CSS، ویژگیهای آن و مثالهای کاربردی را بررسی خواهیم کرد.
۱. تعریف اولیه animation در CSS
برای ایجاد یک انیمیشن در CSS، نیاز به دو بخش داریم:
- تعریف انیمیشن در @keyframes: مشخص کردن تغییرات مرحلهای انیمیشن.
- اعمال انیمیشن روی عنصر: استفاده از ویژگی
animation
در عنصر موردنظر.
مثال ساده: تغییر رنگ با انیمیشن
@keyframes changeColor {
from {
background-color: blue;
}
to {
background-color: red;
}
}
.box {
width: 100px;
height: 100px;
background-color: blue;
animation: changeColor 2s linear infinite;
}
✅ در این مثال، عنصر .box
هر ۲ ثانیه از آبی به قرمز تغییر رنگ میدهد و این روند بهطور بینهایت تکرار میشود.
۲. ویژگی های animation در CSS
ویژگی animation
شامل چندین مقدار است که در ادامه بررسی میکنیم:
animation: name duration timing-function delay iteration-count direction fill-mode play-state;
ویژگی | توضیح |
---|---|
animation-name | نام انیمیشنی که در @keyframes تعریف شده است. |
animation-duration | مدت زمان اجرای انیمیشن (مثلاً 2s ). |
animation-timing-function | نحوه تغییرات در طول زمان (ease , linear , ease-in , ease-out , cubic-bezier ). |
animation-delay | تأخیر قبل از شروع انیمیشن (مثلاً 1s ). |
animation-iteration-count | تعداد تکرار انیمیشن (infinite برای تکرار بینهایت). |
animation-direction | جهت حرکت انیمیشن (normal , reverse , alternate ). |
animation-fill-mode | تعیین میکند که عنصر بعد از انیمیشن در چه حالتی باقی بماند. |
animation-play-state | امکان توقف یا اجرای انیمیشن (running , paused ). |
۳. استفاده از چندین مرحله در @keyframes
به جای from
و to
، میتوان درصدهای مختلفی را برای کنترل دقیقتر انیمیشن مشخص کرد.
مثال: تغییر رنگ در چند مرحله
@keyframes multiColor {
0% { background-color: blue; }
50% { background-color: green; }
100% { background-color: red; }
}
.box {
animation: multiColor 3s ease-in-out infinite;
}
✅ این کد باعث میشود که رنگ عنصر ابتدا آبی، سپس سبز و در نهایت قرمز شود.
۴. کنترل تعداد تکرار انیمیشن (iteration-count)
ویژگی animation-iteration-count
مشخص میکند که انیمیشن چند بار تکرار شود.
مقدار | توضیح |
---|---|
1 | فقط یک بار اجرا میشود. |
3 | سه بار تکرار میشود. |
infinite | بهطور نامحدود تکرار میشود. |
مثال: اجرای انیمیشن فقط ۳ بار
.box {
animation: multiColor 3s ease-in 3;
}
✅ این انیمیشن فقط ۳ بار اجرا شده و سپس متوقف میشود.
۵. تغییر جهت انیمیشن (animation-direction)
این ویژگی مشخص میکند که انیمیشن در چه جهتی حرکت کند.
مقدار | توضیح |
---|---|
normal | حرکت از ابتدا تا انتها (پیشفرض) |
reverse | حرکت از انتها به ابتدا |
alternate | حرکت رفت و برگشتی |
alternate-reverse | حرکت برگشتی و سپس رفت |
مثال: اجرای انیمیشن بهصورت رفت و برگشت (alternate)
.box {
animation: multiColor 3s ease-in-out infinite alternate;
}
✅ در این حالت، رنگ ابتدا از آبی به قرمز تغییر کرده و سپس از قرمز به آبی برمیگردد.
۶. تنظیم وضعیت نهایی انیمیشن (fill-mode)
ویژگی animation-fill-mode
مشخص میکند که عنصر بعد از انیمیشن چه حالتی داشته باشد.
مقدار | توضیح |
---|---|
none | بعد از انیمیشن، عنصر به حالت اولیه برمیگردد. |
forwards | عنصر در وضعیت نهایی انیمیشن باقی میماند. |
backwards | عنصر قبل از شروع انیمیشن در وضعیت اولیه آن باقی میماند. |
both | ترکیبی از forwards و backwards . |
مثال: باقی ماندن عنصر در وضعیت پایانی انیمیشن
.box {
animation: multiColor 3s ease-in-out forwards;
}
✅ پس از پایان انیمیشن، رنگ نهایی حفظ میشود و عنصر به حالت اولیه برنمیگردد.
۷. توقف و اجرای انیمیشن (play-state)
برای کنترل اجرای انیمیشن میتوان از animation-play-state
استفاده کرد.
مثال: توقف و اجرای انیمیشن با هاور
.box {
animation: multiColor 3s infinite;
animation-play-state: paused;
}
.box:hover {
animation-play-state: running;
}
✅ در این مثال، انیمیشن متوقف است و فقط هنگام هاور شدن اجرا میشود.
۸. ترکیب چندین انیمیشن در یک عنصر
میتوان چندین انیمیشن را همزمان روی یک عنصر اعمال کرد.
مثال: ترکیب چرخش و تغییر رنگ
@keyframes rotateBox {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@keyframes colorChange {
0% { background-color: blue; }
100% { background-color: red; }
}
.box {
animation: rotateBox 2s linear infinite, colorChange 3s ease-in-out infinite;
}
✅ در این مثال، عنصر همزمان میچرخد و تغییر رنگ میدهد.
۹. جمعبندی
✔ برای ایجاد انیمیشن، از @keyframes
همراه با animation
استفاده میشود.
✔ animation-duration
مدت زمان انیمیشن را تعیین میکند.
✔ animation-iteration-count
مشخص میکند که انیمیشن چند بار تکرار شود.
✔ animation-direction
میتواند حرکت را برعکس یا رفت و برگشتی کند.
✔ animation-fill-mode
مشخص میکند که عنصر بعد از پایان انیمیشن در چه حالتی باقی بماند.
✔ animation-play-state
امکان متوقف کردن یا اجرای انیمیشن را فراهم میکند.
✔ میتوان چندین انیمیشن را بهصورت همزمان روی یک عنصر اعمال کرد.
با یادگیری این مفاهیم، میتوانید انیمیشنهای حرفهای و جذاب در طراحی وب خود ایجاد کنید! 🚀