логотип PurpleSchool
логотип PurpleSchool

CSS transition; Полное руководство по созданию плавных переходов

Автор

Дмитрий Нечаев

Свойство transition в CSS позволяет создавать плавные изменения состояния элементов, делая переходы между различными стилями более мягкими и эстетичными. Это свойство широко используется для улучшения пользовательского опыта на веб-страницах. В этой статье мы подробно рассмотрим, как использовать transition, и приведем примеры для лучшего понимания.

Основы CSS transition

Свойство transition задает эффект плавного перехода между двумя состояниями элемента при изменении одного или нескольких его свойств.

Синтаксис CSS transition

Синтаксис использования свойства transition следующий:

.element {
  transition: свойство продолжительность функция_времени задержка;
}
  • свойство
    • CSS-свойство, к которому применяется переход (например, width, height, background-color).
  • продолжительность
    • время, в течение которого будет происходить переход (например, 2s для двух секунд).
  • функция_времени
    • функция, определяющая скорость изменения перехода (например, ease, linear, ease-in, ease-out).
  • задержка
    • задержка перед началом перехода (например, 1s для одной секунды).

Пример использования

Рассмотрим простой пример, где при наведении курсора на элемент меняется его цвет и размер:

.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition: width 2s, height 2s, background-color 2s; /* Задаем переход для нескольких свойств */
}

.box:hover {
  width: 200px;
  height: 200px;
  background-color: red;
}

В этом примере элемент .box плавно изменит свои размеры и цвет при наведении курсора, используя переход длительностью 2 секунды.

Свойства transition

Для более детального контроля над переходами можно использовать следующие свойства:

  • transition-property
    • задает CSS-свойства, к которым применяется переход.
  • transition-duration
    • задает продолжительность перехода.
  • transition-timing-function
    • задает функцию времени для перехода.
  • transition-delay
    • задает задержку перед началом перехода.

Пример с отдельными свойствами transition

.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition-property: width, height, background-color;
  transition-duration: 2s;
  transition-timing-function: ease-in-out;
  transition-delay: 0.5s;
}

.box:hover {
  width: 200px;
  height: 200px;
  background-color: red;
}

В этом примере переходы будут начинаться через 0.5 секунд после наведения курсора и выполняться с функцией времени ease-in-out.

Функции времени (timing functions)

Функции времени определяют, как будет изменяться скорость перехода на протяжении его выполнения.

Основные функции времени

  • ease
    • Переход начинается медленно, затем ускоряется и снова замедляется к концу (по умолчанию).
  • linear
    • Переход выполняется с постоянной скоростью.
  • ease-in
    • Переход начинается медленно и ускоряется к концу.
  • ease-out
    • Переход начинается быстро и замедляется к концу.
  • ease-in-out
    • Переход начинается медленно, ускоряется и снова замедляется к концу.

Пример использования различных функций времени

.ease {
  transition: all 2s ease;
}

.linear {
  transition: all 2s linear;
}

.ease-in {
  transition: all 2s ease-in;
}

.ease-out {
  transition: all 2s ease-out;
}

.ease-in-out {
  transition: all 2s ease-in-out;
}

Пользовательская функция Безье

Для создания уникальных эффектов можно использовать пользовательскую функцию Безье с четырьмя параметрами, которые определяют форму кривой.

Пример с функцией Безье

.bezier {
  transition: all 2s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

В этом примере используется пользовательская функция Безье для создания эффекта плавного и нестандартного перехода.

Практические примеры использования transition

Пример с изменением прозрачности

Создадим эффект плавного изменения прозрачности элемента при наведении курсора:

.fade {
  opacity: 1;
  transition: opacity 1s;
}

.fade:hover {
  opacity: 0.5;
}

Пример с перемещением элемента

Создадим эффект плавного перемещения элемента:

.move {
  position: relative;
  left: 0;
  transition: left 1s;
}

.move:hover {
  left: 100px;
}

Советы и рекомендации

  1. Используйте transition для улучшения пользовательского опыта. Плавные переходы делают взаимодействие с веб-страницей более приятным и интуитивно понятным.

  2. Не злоупотребляйте переходами. Слишком много анимаций могут негативно сказаться на производительности сайта и отвлекать пользователей.

  3. Тестируйте переходы в разных браузерах. Убедитесь, что ваши переходы корректно работают в различных браузерах, так как поддержка CSS-анимаций может отличаться.

Заключение

Свойство transition в CSS является мощным инструментом для создания плавных изменений состояния элементов. С его помощью можно легко сделать взаимодействие с веб-страницей более динамичным и привлекательным. Следуя приведенным рекомендациям и примерам, вы сможете эффективно использовать transition в своих проектах, улучшая взаимодействие с пользователями и делая ваши веб-страницы более интересными и интерактивными.

Стрелочка влевоCSS transition-delay; Полное руководство по управлению задержкой переходовCSS @keyframes; Полное руководство по созданию анимацийСтрелочка вправо

Постройте личный план изучения Css до уровня Middle — бесплатно!

Css — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Css

Полное руководство по использованию свойства will-change в CSSПолное руководство по свойству transform-style в CSSУправление точкой опоры трансформаций в CSS с помощью transform-originИспользование функций CSS-трансформации; Полное руководствоПолное руководство по свойству transform-box в CSSУправление элементами с помощью свойства transform в CSSПолное руководство по свойству perspective-origin в CSSПолное руководство по свойству perspective в CSSПолное руководство по свойству backface-visibility в CSS
Универсальный селектор в CSS. Полное руководство с примерамиСелектор по тегу в CSS. Полное руководство с примерамиСелектор потомка в CSS. Полное руководство с примерамиПеречисление селекторов в CSS. Полное руководство с примерамиСелектор по идентификатору в CSS; Полное руководство с примерамиКомбинированные селекторы в CSS; Полное руководство с примерамиСелектор по классу в CSS; Полное руководство с примерамиСелектор по атрибуту в CSS; Полное руководство с примерами
Псевдокласс selection. Полное руководство с примерамиПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиПсевдоэлемент first-line в CSS. Полное руководство с примерамиПсевдоэлемент first-letter в CSS. Полное руководство с примерамиСвойство content в CSS. Полное руководство с примерамиПсевдоэлемент before в CSS. Полное руководство с примерамиПсевдоэлемент backdrop в CSS. Полное руководство с примерамиПсевдоэлемент after в CSS. Полное руководство с примерами
Псевдокласс where в CSS. Полное руководство с примерамиПсевдокласс visited в CSS. Полное руководство с примерамиПсевдоклассы группы type в CSS. Полное руководство с примерамиПсевдокласс target в CSS. Полное руководство с примерамиПсевдокласс root в CSS. Полное руководство с примерамиПсевдокласс required в CSS. Полное руководство с примерамиПсевдоклассы в CSS. Полное руководство с примерамиПсевдокласс placeholder-shown в CSS. Полное руководство с примерамиПсевдокласс optional в CSS. Полное руководство с примерамиПсевдокласс not в CSS. Полное руководство с примерамиПсевдокласс link в CSS. Полное руководство с примерамиПсевдокласс lang в CSS. Полное руководство с примерамиПсевдокласс is в CSS. Полное руководство с примерамиПсевдоклассы invalid и valid в CSS. Полное руководство с примерамиПсевдокласс indeterminate в CSS. Полное руководство с примерамиПсевдоклассы in-range и out-of-range. Полное руководство с примерамиПсевдокласс hover в CSS. Полное руководство с примерамиПсевдокласс has в CSS. Полное руководство с примерамиПсевдокласс focus-within в CSS. Полное руководство с примерамиПсевдокласс focus-visible в CSS. Полное руководство с примерамиПсевдокласс focus в CSS. Полное руководство с примерамиПсевдокласс empty в CSS. Полное руководство с примерамиПсевдоклассы disabled и enabled в CSS. Полное руководство с примерамиПсевдокласс default в CSS. Полное руководство с примерамиПсевдоклассы группы child в CSS. Полное руководство с примерамиПсевдокласс checked в CSS. Полное руководство с примерамиПсевдокласс active в CSS. Полное руководство с примерами
Функция var в CSS. Полное руководство с примерамиФункция url в CSS. Полное руководство с примерамиФункция repeating-radial-gradient в CSS. Полное руководство с примерамиФункция repeating-linear-gradient в CSS. Полное руководство с примерамиФункция repeating-conic-gradient в CSS. Полное руководство с примерамиФункция radial-gradient в CSS. Полное руководство с примерамиФункция min в CSS. Полное руководство с примерамиФункция max в CSS. Полное руководство с примерамиФункция linear-gradient в CSS. Полное руководство с примерамиФункция image-set в CSS. Полное руководство с примерамиФункции фильтров в CSS. Полное руководство с примерамиФункция clamp в CSS. Полное руководство с примерамиФункция conic-gradient в CSS. Полное руководство с примерамиФункция calc в CSS. Полное руководство с примерамиФункция attr в CSS. Полное руководство с примерами
Вендорные префиксы в CSS. Полное руководство с примерамиКонтекст наложения в CSS. Полное руководство с примерамиСпецифичность в CSS. Полное руководство с примерамиПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиНаследование в CSS. Полное руководство с примерамиCSS-правило. Полное руководство с примерамиКомментарии в CSS. Полное руководство с примерамиПринцип каскада в CSS. Полное руководство с примерамиБлочная модель в CSS. Полное руководство с примерамиСвойство all в CSS. Полное руководство с примерамиПодключение стилей к HTML. Полное руководство с примерами
Полное руководство по transition-timing-function в CSSПолное руководство по свойству will-change в CSSОсновы использования transition-property в CSS; управление плавными переходамиCSS transition-duration; Полное руководство по управлению продолжительностью переходовCSS transition-delay; Полное руководство по управлению задержкой переходовCSS transition; Полное руководство по созданию плавных переходовCSS @keyframes; Полное руководство по созданию анимацийCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-play-state; Полное руководство по управлению анимациямиCSS animation-name; Полное руководство по заданию имени анимацииCSS animation-iteration-count; Полное руководство по управлению количеством повторений анимацииCSS animation-fill-mode; Полное руководство по управлению состоянием элементов после анимацииCSS animation-duration; Полное руководство по управлению длительностью анимацииCSS animation-direction; Полное руководство по управлению направлением анимацииCSS animation-delay; Полное руководство с примерамиCSS-анимации; Полное руководство с примерами
Открыть базу знаний

Лучшие курсы по теме

изображение курса

HTML и CSS

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Frontend
Mobile
изображение курса

TypeScript с нуля

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Backend
Frontend
Mobile
изображение курса

Next.js - с нуля

Антон Ларичев
иконка часов8 бесплатных уроков
иконка звёздочки рейтинга4.7
Frontend