CSS Transform و Transition دو ویژگی مهم CSS هستند که به شما امکان میدهند تا افکتهای تعاملی و پویا برای عناصر وبسایت خود ایجاد کنید. Transform برای تغییر شکل، اندازه و موقعیت عناصر کاربرد دارد، در حالی که Transition به شما امکان میدهد که این تغییرات به صورت نرم و روان انجام شوند. در این مقاله، نحوه استفاده از Transform و Transition در CSS و چگونگی ایجاد تغییرات ظاهری پویا را بررسی میکنیم.
ویژگی Transform برای انجام تغییرات گرافیکی مانند چرخش، تغییر اندازه، جابجایی و کج کردن عناصر به کار میرود. این ویژگی بدون تغییر در ساختار HTML، ظاهر عنصر را به صورت ظاهری تغییر میدهد و باعث افزایش جذابیت بصری میشود.
انواع Transform در CSS
translate(): جابجایی عنصر در محور x و y.
rotate(): چرخش عنصر حول نقطه مرکزی.
scale(): تغییر اندازه عنصر.
skew(): کج کردن عنصر در محور x و y.
translate(x, y) عنصر را در راستای محور x و y جابجا میکند. این ویژگی برای حرکت دادن عناصر به صورت افقی و عمودی استفاده میشود.
مثال استفاده از translate()
.box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: translate(50px, 20px);
}
در اینجا:
عنصر .box به میزان 50 پیکسل به سمت راست و 20 پیکسل به سمت پایین جابجا میشود.
ویژگی rotate() عنصر را به زاویه مشخصی حول نقطه مرکزی میچرخاند. مقدار زاویه میتواند مثبت (چرخش در جهت عقربههای ساعت) یا منفی (چرخش در خلاف جهت عقربههای ساعت) باشد.
مثال استفاده از rotate()
.box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: rotate(45deg);
}
در اینجا:
عنصر .box به اندازه 45 درجه در جهت عقربههای ساعت چرخانده میشود.
ویژگی scale() اندازه عنصر را در محورهای x و y تغییر میدهد. مقدار 1 به معنی اندازه اصلی، و مقادیر بزرگتر از 1 بزرگنمایی و مقادیر کوچکتر از 1 کوچکنمایی را ایجاد میکنند.
مثال استفاده از scale()
.box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: scale(1.5);
}
در اینجا:
عنصر .box به اندازه 1.5 برابر بزرگتر میشود.
ویژگی skew(x, y) برای کج کردن عنصر در محورهای x و y استفاده میشود. این ویژگی با تغییر زاویه عنصر در این محورها، ظاهر خاصی ایجاد میکند.
مثال استفاده از skew()
.box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: skew(20deg, 10deg);
}
در اینجا:
عنصر .box به میزان 20 درجه در محور x و 10 درجه در محور y کج میشود.
میتوانید چندین Transform را به صورت همزمان روی یک عنصر اعمال کنید. این کار باعث میشود تا افکتهای پیچیدهتر و جذابتری ایجاد کنید.
مثال ترکیب Transformها
.box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: translate(30px, 20px) rotate(45deg) scale(1.2);
}
در اینجا:
عنصر .box جابجا شده، چرخیده و بزرگنمایی میشود و ترکیبی از سه Transform روی آن اعمال شده است.
Transition در CSS به شما اجازه میدهد که تغییرات در ویژگیهای CSS به صورت نرم و روان انجام شوند. برای تعریف Transition، از ویژگیهای زیر استفاده میکنیم:
transition-property: ویژگیای که میخواهید برای آن Transition ایجاد کنید (مانند background-color، width).
transition-duration: مدت زمان اجرای Transition (به ثانیه یا میلیثانیه).
transition-timing-function: نوع حرکت Transition مانند ease، linear، ease-in و ease-out.
transition-delay: تأخیر در شروع Transition.
مثال ساده از Transition
.button {
background-color: #3498db;
color: white;
padding: 10px 20px;
border-radius: 5px;
transition: background-color 0.3s ease;
}
.button:hover {
background-color: #2980b9;
}
در اینجا:
background-color به صورت نرم و با زمان 0.3 ثانیه تغییر میکند.
Transition میتواند برای ایجاد افکتهای تعاملی مانند تغییر اندازه، رنگ، سایه و چرخش عناصر به کار رود. استفاده از Transitionها به وبسایت شما جذابیت و جلوه بصری بیشتری میبخشد.
مثال افکت تعاملی با Transition و Transform
.card {
width: 200px;
height: 300px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
transform: scale(1.05);
box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2);
}
در اینجا:
کارت با استفاده از scale بزرگتر شده و سایه آن در حالت hover افزایش مییابد.
Timing Functionها نوع حرکت Transition را تعیین میکنند. چند نوع Timing Function رایج عبارتند از:
linear: تغییرات با سرعت ثابت انجام میشوند.
ease: شروع و پایان نرم، با سرعت متغیر در طول Transition.
ease-in: سرعت از حالت کند شروع شده و سپس تند میشود.
ease-out: سرعت از حالت تند شروع شده و سپس کند میشود.
ease-in-out: ترکیبی از ease-in و ease-out.
مثال استفاده از Timing Functionها
.button {
background-color: #3498db;
color: white;
padding: 10px 20px;
transition: background-color 0.3s ease-out;
}
.button:hover {
background-color: #2980b9;
}
در اینجا:
تغییر رنگ با Timing Function ease-out انجام میشود که به آرامی کند میشود.
استفاده از مقادیر مناسب برای Transition Duration: Transitionها را کوتاه و مناسب نگه دارید (حدود 0.2 تا 0.5 ثانیه) تا تجربه کاربری بهتری ایجاد شود.
اجتناب از استفاده بیش از حد از Transformها و Transitionها: استفادهی زیاد از Transformها و Transitionها ممکن است باعث کاهش سرعت بارگذاری صفحه و افزایش بار پردازشی شود.
استفاده از ترکیبها برای ایجاد افکتهای پیچیدهتر: ترکیب Transform و Transition میتواند افکتهای بصری جذابتری ایجاد کند.
آزمایش در دستگاههای مختلف: افکتها را در دستگاههای مختلف بررسی کنید تا مطمئن شوید که به درستی نمایش داده میشوند.
Transform و Transition در CSS ابزارهای قوی و پرکاربردی هستند که به شما امکان میدهند وبسایتهایی با افکتهای تعاملی، نرم و زیبا ایجاد کنید. با استفاده از این ابزارها و رعایت بهترین شیوهها میتوانید طراحیهای پویا و جذابتری ایجاد کرده و تجربه کاربری بهتری برای کاربران فراهم کنید.
نظری یافت نشد
بررسی کتابخانههای محبوب جاوا اسکریپت: آشنایی با Lodash و Moment.js - مزایا و کاربردها
4م آبان 1403
مطالعه بیشتر
استفاده از setTimeout و setInterval در جاوا اسکریپت: آموزش کامل و مثالها
29م مهر 1403
مطالعه بیشتر
استفاده از calc در CSS: محاسبات پویا برای طراحیهای منعطف
12م آبان 1403
مطالعه بیشتر
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنشگرا
11م آبان 1403
مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگها و تصاویر برای طراحی وب جذاب
18م شهریور 1402
مطالعه بیشتر
آموزش تگهای متنی اولیه در HTML: استایلدهی و قالببندی متنها
18م مرداد 1402
مطالعه بیشتر
آموزش ایجاد Transitions و انیمیشنهای صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب
16م آبان 1403
مطالعه بیشتر
آموزش استایلدهی لیستها در CSS: طراحی و استایلدهی ul و ol
10م آبان 1403
مطالعه بیشتر
آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگها و ایجاد افکتهای جذاب
12م آبان 1403
مطالعه بیشتر
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
28م شهریور 1402
مطالعه بیشتر
مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثالهای عملی
30م مهر 1403
مطالعه بیشتر
استفاده از Flexbox در CSS برای چیدمانهای مدرن: راهنمای جامع و کاربردی
10م آبان 1403
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد