انتقالهای نرم: عناصر خود را متحرک کنید!

انتقالهای نرم: عناصر خود را متحرک کنید!
CSS Transitions: جادوی حرکت نرم و روان! ✨
سلام به همه! تا حالا شده یه سایت رو ببینید که با هاور کردن روی یه دکمه، رنگش نرم و قشنگ عوض میشه؟ یا با تغییر اندازه یه عنصر، انیمیشن ظریفی رو حس کنید؟ اینها همه با CSS Transitions یا انتقالها ساخته میشن! یعنی به جای اینکه یه تغییر حالت یهو و با پرش اتفاق بیفته، یه حرکت نرم و پیوسته بین حالت اول و دوم تعریف میکنیم. این باعث میشه رابط کاربری خیلی حرفهایتر و چشمنوازتر به نظر برسه. بیاین یاد بگیریم چطور این جادو رو به سایتمون اضافه کنیم! 🧚♀️
1. Transition یعنی چی؟ از این حالت به اون حالت، آهسته! ➡️
Transition به ما اجازه میده که تغییرات یه خاصیت CSS رو در طول یه بازهی زمانی مشخص، به صورت انیمیشنی ببینیم. مثلاً وقتی موس رو روی یه دکمه میبریم (:hover
)، رنگ پسزمینهاش از آبی به سبز عوض میشه. بدون transition، این تغییر یهو اتفاق میافته. اما با transition، رنگ به آرامی از آبی به سبز محو میشه.
برای تعریف transition، به چند تا ویژگی کلیدی نیاز داریم:
transition-property
: کدوم خاصیت CSS قراره انیمیشن داشته باشه؟ (مثلاًbackground-color
،width
،opacity
)transition-duration
: این انیمیشن چقدر طول بکشه؟ (مثلاً0.5s
برای نیم ثانیه)transition-timing-function
: سرعت انیمیشن در طول زمان چطور باشه؟ (مثلاً اولش آروم، وسطش تند، آخرش دوباره آروم)transition-delay
: انیمیشن چقدر بعد از تغییر حالت شروع بشه؟ (مثلاً0.2s
تاخیر)
2. `transition-duration`: زمانبندی حرکت! ⏱️
این ویژگی تعیین میکنه که انیمیشن ما چقدر طول بکشه تا از حالت اول به حالت دوم برسه. واحدش معمولاً ثانیه (s
) یا میلیثانیه (ms
) هست.
transition-duration: 0.3s;
(نیم ثانیه)transition-duration: 100ms;
(یک دهم ثانیه)
چه زمانی مناسبه؟ معمولاً بین 0.2s تا 1s برای اکثر Transitionها مناسبه. زمان خیلی کوتاه ممکنه تغییر رو ناگهانی نشون بده و زمان خیلی طولانی هم ممکنه کاربر رو خسته کنه.
3. `transition-timing-function`: ریتم انیمیشن! 🎶
این ویژگی تعیین میکنه که سرعت انیمیشن در طول زمان چطور تغییر کنه. انگار که ریتم حرکت رو تنظیم میکنیم!
مقادیر رایج:
ease
(پیشفرض): اولش آروم، وسطش تند، آخرش دوباره آروم. (طبیعیترین حالت)linear
: سرعت ثابت در تمام طول انیمیشن.ease-in
: انیمیشن از اول آروم شروع میشه و تند میشه.ease-out
: انیمیشن تند شروع میشه و آخرش آروم میشه.ease-in-out
: هم اولش آروم، هم آخرش آروم، وسطش تند. (شبیه ease ولی با شروع و پایان آرومتر)cubic-bezier(...)
: برای تعریف یه منحنی سرعت سفارشی. (این پیشرفتهتره ولی کنترل کامل رو به ما میده)
4. `transition-delay`: تاخیر قبل از شروع! ⏳
این ویژگی تعیین میکنه که انیمیشن چقدر بعد از اینکه شرط تغییر حالت اتفاق افتاد، شروع بشه.
transition-delay: 0.5s;
(انیمیشن نیم ثانیه بعد از تغییر حالت شروع میشه)
چه زمانی کاربرد داره؟ وقتی میخواید چند تا انیمیشن رو پشت سر هم اجرا کنید یا یه افکت جالب ایجاد کنید که انیمیشن با کمی تاخیر شروع بشه.
5. `transition-property`: انتخاب خاصیتها! 🎨
اینجا مشخص میکنیم که کدوم یکی از ویژگیهای CSS قراره انیمیشنی بشن.
transition-property: background-color;
(فقط رنگ پسزمینه انیمیشن میشه)transition-property: width, height, opacity;
(چند تا خاصیت با هم)transition-property: all;
(همه خاصیتهایی که قابل انیمیشن باشن، انیمیشن میشن)
استفاده از
all
راحتتره، اما اگه میخواید عملکرد سایت بهتر باشه و فقط خاصیتهای مشخصی انیمیشن بشن، بهتره دقیقاً اونها رو نام ببرید.
6. ترکیب همه با `transition` shorthand! 🚀
شما میتونید همه این ویژگیها رو در یه خط و با استفاده از پراپرتی shorthand transition
بنویسید. ترتیبش مهمه:
transition: <property> <duration> <timing-function> <delay>;
/* مثال: دکمهای که با هاور شدن، رنگش عوض میشه */
.my-button {
background-color: blue;
padding: 10px 20px;
color: white;
border: none;
cursor: pointer;
/* Transition برای تغییر رنگ پسزمینه */
/* property: background-color, duration: 0.4s, timing-function: ease-in-out, delay: 0s */
transition: background-color 0.4s ease-in-out;
}
.my-button:hover {
background-color: green; /* وقتی موس روشه، رنگ سبز میشه */
}
/* مثال دیگه: تغییر اندازه و opacity */
.animated-box {
width: 100px;
height: 100px;
background-color: teal;
opacity: 0.8;
transition: width 0.5s ease, height 0.5s ease 0.2s, opacity 0.3s linear; /* سه تا transition مجزا */
}
.animated-box:hover {
width: 150px;
height: 150px;
opacity: 1;
}
در مثال دوم، برای هر خاصیت یه transition تعریف کردیم که نشون میده چطور میتونید کنترل دقیقتری داشته باشید.
CSS Transitions ابزاری ساده ولی بسیار قدرتمند برای زیباتر کردن رابط کاربری شما هستن. با تمرین و استفاده از اونها، میتونید سایتهایی بسازید که حس زندهتری دارن و کاربر رو بیشتر درگیر میکنن. یادتون باشه، افکتهای اضافه و زیاد میتونه نتیجه عکس بده، پس هوشمندانه ازشون استفاده کنید! 😉
مقالات مرتبط
آخرین مقالات
کدهای تمیز: با متغیرها، CSS را هوشمند کنید! 💡
متغیرهای CSS (Custom Properties): کد تمیزتر، مدیریت راحتتر! 🎨 سلام به همگی! توی پروژههای CSS، خیلی وقتا پیش میاد که یه رنگ، یه فونت، یا یه فاصله رو بارها و بارها توی جاهای مختلف استفاده میکنیم. مثلاً رنگ اصلی سایتمون...
ساخت انیمیشنهای حرفهای با @keyframes (گام به گام)
CSS Animations: خلق انیمیشنهای پیچیده با @keyframes! 🎬 سلام به همگی! تا الان با Transitionها آشنا شدیم که تغییرات بین دو حالت رو نرم میکنن. اما اگه بخوایم انیمیشنهای پیچیدهتر، چند مرحلهای، یا حتی انیمیشنهایی که مدام تکرار میشن رو...
دگرگونی سایت با CSS: چرخش، تغییر اندازه و جابجایی
CSS Transforms: جابجایی، چرخش، تغییر اندازه و کج کردن عناصر! 🤸♀️ سلام دوستان! تا اینجا با انیمیشنهای نرم و پیوسته (Transitions) آشنا شدیم. اما گاهی وقتها نیاز داریم که عناصر HTML رو جابجا کنیم، بچرخونیم، اندازهشون رو عوض کنیم یا...
انتقالهای نرم: عناصر خود را متحرک کنید!
CSS Transitions: جادوی حرکت نرم و روان! ✨ سلام به همه! تا حالا شده یه سایت رو ببینید که با هاور کردن روی یه دکمه، رنگش نرم و قشنگ عوض میشه؟ یا با تغییر اندازه یه عنصر، انیمیشن ظریفی رو...