دسته : آموزش رایگان 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 ابزارهای قدرتمندی برای ایجاد وبسایتهای پویا و جذاب هستند. با استفاده از این ابزارها میتوانید تجربه کاربری را بهبود دهید و وبسایتی با افکتهای نرم و واکنشگرا بسازید. به کارگیری این تکنیکها به صورت اصولی و متناسب با محتوا میتواند وبسایت شما را حرفهایتر و کاربرپسندتر کند.
نظری یافت نشد
آموزش تگهای متنی اولیه در HTML: استایلدهی و قالببندی متنها
18م مرداد 1402
مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
2م بهمن 1402
مطالعه بیشتر
بررسی کتابخانههای محبوب جاوا اسکریپت: آشنایی با Lodash و Moment.js - مزایا و کاربردها
4م آبان 1403
مطالعه بیشتر
آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیشفرض - راهنمای جامع
2م آبان 1403
مطالعه بیشتر
آموزش مدیریت Box Model و ترکیب اجزای آن با CSS: کنترل دقیق فاصلهها و ابعاد عناصر
5م شهریور 1402
مطالعه بیشتر
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنشگرا برای تمامی دستگاهها
10م شهریور 1402
مطالعه بیشتر
مقدمهای به template و دیتابایندینگ در Vue.js: نحوه مدیریت دادهها و رندرینگ پویا
28م شهریور 1402
مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننتها
28م شهریور 1402
مطالعه بیشتر
آموزش استایلدهی لینکها در CSS: طراحی و تنظیمات ساده برای لینکهای HTML
7م شهریور 1402
مطالعه بیشتر
مقدمهای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان
4م شهریور 1402
مطالعه بیشتر
آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگها و ایجاد افکتهای جذاب
12م آبان 1403
مطالعه بیشتر
آموزش طراحی و استایلدهی جدولها در CSS: راهنمای ساده و کاربردی
10م شهریور 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد