دسته : آموزش رایگان CSS
استفاده از ترانزیشنها و انیمیشنها در CSS به شما امکان میدهد تا وبسایتی پویا و جذابتر ایجاد کنید. این افکتها میتوانند به عناصر مختلف صفحه جلوهای نرم و روان بدهند و تجربه کاربری را بهبود بخشند. در این مقاله، به نحوه استفاده از ترانزیشنها و انیمیشنها در CSS برای ایجاد افکتهای نرم و واکنشگرا میپردازیم و مثالهایی کاربردی ارائه میدهیم.
ترانزیشنها (Transitions) به شما اجازه میدهند که تغییرات در ویژگیهای CSS (مانند رنگ، اندازه، و موقعیت) به صورت نرم و روان اجرا شوند. این کار باعث میشود تا تغییرات به جای تغییر ناگهانی، با انیمیشنی ساده و جذاب به نمایش درآیند.
برای ایجاد ترانزیشن، از ویژگیهای transition-property، transition-duration، transition-timing-function و transition-delay استفاده میکنیم.
transition-property: ویژگیای که میخواهید تغییر آن به صورت نرم باشد (مثل color، width).
transition-duration: مدت زمان اجرای ترانزیشن (به ثانیه یا میلیثانیه).
transition-timing-function: نوع اجرای ترانزیشن مانند ease، linear، ease-in و ease-out.
transition-delay: تأخیر در شروع ترانزیشن.
مثال ساده ترانزیشن
.button {
background-color: #3498db;
color: white;
padding: 10px 20px;
border-radius: 5px;
transition: background-color 0.3s ease, transform 0.3s;
}
.button:hover {
background-color: #2980b9;
transform: scale(1.1);
}
در اینجا:
background-color و transform به صورت نرم تغییر میکنند.
transition-duration مقدار 0.3 ثانیه دارد، یعنی تغییر رنگ پسزمینه و اندازه دکمه به آرامی در 0.3 ثانیه رخ میدهد.
در CSS میتوانید چندین ترانزیشن را به صورت همزمان و برای ویژگیهای مختلف تعریف کنید. برای این کار کافی است ویژگیهای ترانزیشن را با ویرگول جدا کنید.
مثال استفاده از ترانزیشنهای چندگانه
.card {
width: 200px;
height: 300px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
transition: width 0.4s ease, height 0.4s ease, box-shadow 0.4s ease;
}
.card:hover {
width: 220px;
height: 320px;
box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2);
}
در اینجا:
با حرکت موس روی کارت، عرض، ارتفاع و سایه کارت به صورت همزمان و نرم تغییر میکنند.
در CSS، انیمیشنها (Animations) به شما امکان میدهند که تغییرات پیچیدهتری را در عناصر ایجاد کنید. برخلاف ترانزیشنها که فقط در حالتهای hover و focus اجرا میشوند، انیمیشنها میتوانند به صورت خودکار و بدون نیاز به تعامل کاربر اجرا شوند.
تعریف انیمیشن با استفاده از ویژگی @keyframes.
استفاده از ویژگی animation برای تعیین نام انیمیشن، مدت زمان، زمانبندی و تعداد تکرار.
مثال ساده انیمیشن
@keyframes slide {
0% {
transform: translateX(0);
}
50% {
transform: translateX(100px);
}
100% {
transform: translateX(0);
}
}
.box {
width: 100px;
height: 100px;
background-color: #3498db;
animation: slide 2s ease infinite;
}
در اینجا:
انیمیشنی با نام slide تعریف شده که باعث حرکت جعبه در جهت افقی میشود.
animation: slide 2s ease infinite باعث میشود که این حرکت به طور نامحدود تکرار شود و با زمانبندی ease و در مدت 2 ثانیه اجرا گردد.
ویژگیهای اصلی انیمیشن در CSS شامل موارد زیر است:
animation-name: نام انیمیشن که در @keyframes تعریف شده است.
animation-duration: مدت زمان اجرای انیمیشن.
animation-timing-function: نوع حرکت انیمیشن.
animation-delay: تأخیر در شروع انیمیشن.
animation-iteration-count: تعداد تکرار انیمیشن، مقدار infinite برای تکرار نامحدود.
animation-direction: جهت انیمیشن (normal، reverse، alternate و alternate-reverse).
مثال استفاده از ویژگیهای انیمیشن
@keyframes rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.icon {
width: 50px;
height: 50px;
animation: rotate 3s linear infinite;
}
در اینجا:
آیکون در طول 3 ثانیه به صورت نامحدود و با حرکت یکنواخت (linear) میچرخد.
میتوانید چندین انیمیشن را برای ایجاد افکتهای پیچیدهتر ترکیب کنید. برای این کار از @keyframes برای تعریف مراحل مختلف انیمیشن و از ویژگی animation برای اجرای چندین انیمیشن به صورت همزمان استفاده کنید.
مثال انیمیشن ترکیبی
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes moveUp {
0% {
transform: translateY(30px);
}
100% {
transform: translateY(0);
}
}
.box {
width: 100px;
height: 100px;
background-color: #3498db;
animation: fadeIn 1s ease, moveUp 1s ease;
}
در اینجا، جعبه به صورت همزمان با دو افکت فید این (fade-in) و حرکت به بالا نمایش داده میشود.
استفاده از انیمیشنهای نرم و کوتاه: برای بهبود تجربه کاربری، انیمیشنها را کوتاه و نرم طراحی کنید. ترانزیشنهای 0.2 تا 0.5 ثانیه معمولاً مناسب هستند.
پرهیز از انیمیشنهای بیش از حد: استفاده زیاد از انیمیشنها میتواند باعث کند شدن صفحه و خستهکننده شدن آن برای کاربران شود.
استفاده از انیمیشنهای طبیعی: از انیمیشنهای طبیعی مانند ease و ease-in-out برای تغییرات استفاده کنید تا تجربه کاربری بهتری ایجاد شود.
تست در دستگاههای مختلف: انیمیشنها و ترانزیشنها را در دستگاههای مختلف آزمایش کنید تا مطمئن شوید که به درستی نمایش داده میشوند.
میتوانید انیمیشنها و ترانزیشنها را به صورت ترکیبی استفاده کنید تا افکتهای خاص و واکنشگرا بسازید. به عنوان مثال، میتوانید از انیمیشن برای ایجاد تغییرات مداوم و از ترانزیشن برای تغییرات تعاملی استفاده کنید.
مثال ترکیبی از انیمیشن و ترانزیشن
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
.button {
padding: 10px 20px;
background-color: #3498db;
color: white;
border-radius: 5px;
animation: pulse 2s ease infinite;
transition: background-color 0.3s;
}
.button:hover {
background-color: #2980b9;
}
در اینجا:
دکمه با انیمیشن pulse به صورت مداوم کمی بزرگ و کوچک میشود.
وقتی موس روی دکمه قرار میگیرد، رنگ پسزمینه به صورت نرم تغییر میکند.
ترانزیشنها و انیمیشنها در CSS ابزارهای قدرتمندی برای ایجاد وبسایتهای پویا و جذاب هستند. با استفاده از این ابزارها میتوانید تجربه کاربری را بهبود دهید و وبسایتی با افکتهای نرم و واکنشگرا بسازید. به کارگیری این تکنیکها به صورت اصولی و متناسب با محتوا میتواند وبسایت شما را حرفهایتر و کاربرپسندتر کند.
نظری یافت نشد
آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
10م شهریور 1402
مطالعه بیشتر
کنترل زمانبندی و اندازهگیری دقیق انیمیشنها در CSS: آموزش جامع و اصول استاندارد
18م شهریور 1402
مطالعه بیشتر
آموزش اصول Web APIs و نحوه استفاده از آنها در جاوا اسکریپت: راهنمای کامل با مثالها
1م آبان 1403
مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
11م آبان 1403
مطالعه بیشتر
آموزش ساخت یک Todo List با استفاده از DOM و جاوا اسکریپت: راهنمای گام به گام
3م آبان 1403
مطالعه بیشتر
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنشگرا
11م آبان 1403
مطالعه بیشتر
ایجاد Layoutهای واکنشگرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع
11م آبان 1403
مطالعه بیشتر
استفاده از calc در CSS: محاسبات پویا برای طراحیهای منعطف
12م آبان 1403
مطالعه بیشتر
آموزش اصول طراحی الگوهای برنامهنویسی (Design Patterns) در جاوا اسکریپت: راهنمای جامع با مثالها
4م آبان 1403
مطالعه بیشتر
آموزش ارتباط با سرور و ارسال درخواستهای HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثالها
1م آبان 1403
مطالعه بیشتر
آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام
3م آبان 1403
مطالعه بیشتر
آموزش ایجاد تگهای صفحهبندی در HTML و CSS: طراحی و استایلدهی pagination
29م مرداد 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد