CSS – انتقال‌ها (Transitions)

انتقال‌ها در CSS به شما این امکان را می‌دهند که تغییرات در مقادیر ویژگی‌ها به صورت نرم و روان و در یک بازه زمانی مشخص رخ دهند.

خواص اصلی CSS برای انتقال‌ها

در این بخش با خواص زیر آشنا می‌شوید:

  • transition – برای تعریف انتقالات
  • transition-delay – برای تعیین تأخیر قبل از شروع انتقال
  • transition-duration – برای تعیین مدت زمان انتقال
  • transition-property – برای مشخص کردن ویژگی‌هایی که شامل انتقال خواهند شد
  • transition-timing-function – برای تعیین منحنی سرعت انتقال

چگونه از CSS Transitions استفاده کنیم؟

برای ایجاد یک افکت انتقال باید دو مورد را مشخص کنید:

  1. ویژگی CSS که می‌خواهید انتقال روی آن انجام شود.
  2. مدت زمان افکت انتقال.
مثال

عنصر <div> با ابعاد 100px در 100px و رنگ قرمز که برای ویژگی width افکت انتقال با مدت زمان 2 ثانیه تعریف شده است:

div {
  width: 100px;
  height: 100px;
  background: red;
  transition: width 2s;
}

وقتی ویژگی width تغییر کند، افکت انتقال آغاز می‌شود. حالا با استفاده از :hover می‌توانیم مقدار جدیدی برای width تعریف کنیم:

div:hover {
  width: 300px;
}

وقتی نشانگر موس از روی عنصر خارج شود، اندازه به حالت اولیه به صورت نرم بازمی‌گردد.

تغییر چند ویژگی با هم

در این مثال، انتقال برای هر دو ویژگی width و height مشخص شده است، با این تفاوت که مدت زمان تغییر عرض 2 ثانیه و ارتفاع 4 ثانیه است:

div {
  transition: width 2s, height 4s;
}

تعیین منحنی سرعت انتقال

ویژگی transition-timing-function منحنی سرعت انتقال را مشخص می‌کند. این ویژگی می‌تواند مقادیر زیر را داشته باشد:

  • ease – شروع آهسته، وسط سریع و پایان آهسته (پیش‌فرض)
  • linear – سرعت ثابت از ابتدا تا انتها
  • ease-in – شروع آهسته
  • ease-out – پایان آهسته
  • ease-in-out – شروع و پایان آهسته
  • cubic-bezier(n,n,n,n) – امکان تعریف مقادیر سفارشی در تابع بزیه
مثال:
#div1 {transition-timing-function: linear;}
#div2 {transition-timing-function: ease;}
#div3 {transition-timing-function: ease-in;}
#div4 {transition-timing-function: ease-out;}
#div5 {transition-timing-function: ease-in-out;}

تأخیر در شروع انتقال

ویژگی transition-delay زمان تأخیر قبل از شروع انتقال را مشخص می‌کند.

مثال:
div {
  transition-delay: 1s;
}

ترکیب انتقال و تبدیل

در این مثال، انتقال برای ویژگی‌های width، height و transform به مدت 2 ثانیه تعریف شده است:

div {
  transition: width 2s, height 2s, transform 2s;
}

خلاصه‌نویسی ویژگی‌های انتقال

می‌توانید هر یک از خواص انتقال را به صورت جداگانه مشخص کنید:

div {
  transition-property: width;
  transition-duration: 2s;
  transition-timing-function: linear;
  transition-delay: 1s;
}

یا از خاصیت مختصر transition استفاده کنید:

div {
  transition: width 2s linear 1s;
}

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.