Использование CSS-анимации: практические примеры и идеи

Использование CSS-анимации: практические примеры и идеи
февраль 2025
7 минут
  1. Главная
  2. Блог
  3. Статьи по программированию
  4. Использование CSS-анимации: практические примеры и идеи
Анимации на веб-странице ― отличный способ акцентировать внимание посетителей на определенном элементе и сделать сайт не похожим на другие. Анимации в CSS предназначены для создания и изменения элементов на странице — с их помощью можно реализовать как простые, так и сложные движения, например, вращение. Расскажем, что такое CSS-анимация и как ее сделать.

CSS-анимации: что это и зачем они нужны

CSS или Cascading Style Sheets в переводе с английского — «каскадные таблицы стилей». Это формальный язык, который используют для описания внешнего вида веб-страницы. Важно не путать его с языком программирования.

CSS разработали более 20 лет назад, чтобы упростить работу с примитивным HTML, на котором тогда верстали все сайты. Веб-страницы в то время выглядели весьма однообразно: списки, таблицы и редко изображения.

CSS стал инструментом, который позволил сделать интернет таким, каким мы видим его сейчас. На этом языке можно прописывать свойства любых элементов на сайте и видоизменять их, как захочется ― устанавливать размеры, положение на экране и поведение в зависимости от действий пользователя.

Анимации в CSS ― способ придать сайту динамики. Они не такие сложные, как фреймворки для анимирования элементов на JavaScript. Для создания CSS-анимаций не нужны глубокое знание языков программирования и подключение к веб-странице тяжелых плагинов.

В CSS достаточно описать кадры вашей анимации, чтобы она начала работать. Например, чтобы при наведении курсора квадрат расширялся на 10 пикселей с каждой стороны за две секунды, нужно прописать положение квадрата в начальной и конечной точке движения ― keyframes. Дополнительно необходимо указать такие параметры, как скорость анимации и количество ее повторов ― будет она проигрываться только один раз или бесконечно. Кроме того, важно привязать анимацию к объекту, который нужно оживить.

Все остальное CSS делает сам ― рассчитывает промежуточные положения и воспроизводит анимацию, как только пользователь наводит курсор на квадрат.

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

Преимущества анимаций CSS

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

Если вы хотите глубже разбираться в веб-разработке и в CSS-анимациях, пройдите обучение на курсе «Профессия Веб-разработчик» от ProductStar. С его помощью вы с нуля изучите основы создания сайтов и научитесь создавать анимированные веб-страницы с использованием CSS и фреймворков JavaScript. А в конце обучения специалисты Карьерного центра помогут вам найти работу по специальности.

Основы создания CSS-анимаций

Два главных параметра анимаций в CSS ― это переходы (transition) и ключевые кадры (@keyframes). Рассмотрим детально процесс создания таких анимаций, а также разберем, как настроить длительность, задержку и повторение.

  1. Переходы

Переход ― это плавное изменение параметров объекта после смены его состояния, например, когда на него наводят курсор мыши или когда он появляется на экране.

Основные свойства:

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

Для примера создадим анимацию перехода:
.button {
    background-color: black;        //Кнопка сначала будет черного цвета
    transition: background-color 0.7s ease-in-out, transform 0.5s ease;  //Прописали скорость и функцию анимации для цвета кнопки
}
.button:hover {
    background-color: red;     //Цвет кнопки изменится на красный, когда на нем будет курсор
    transform: scale(1.2);      //Кнопка увеличится в 1,2 раза
}

2. Ключевые кадры

@keyframes ― это состояния элемента в определенный момент времени. С их помощью можно, например, превратить квадрат в круг и обратно, просто описав эти состояния.
<div class="box"></div>   // Используйте HTML, чтобы добавить на страницу «коробку» 
Далее пропишите в CSS:
    .box {
        width: 200px;         // Коробка в высоту будет 200 пикселей
        height: 200px;      // В ширину тоже 200 пикселей
        background-color: blue;      //Цвет ― голубой
        animation: slide 2s ease-in-out infinite;    // Прописываем параметры анимации, коробка будет двигаться слева направо 2 секунды, с постоянным ускорением, бесконечно
    }
 
    @keyframes slide {
        0% { transform: translateX(0); }     // Начальное состояние нашей анимации, коробка стоит на 0 по оси X
        50% { transform: translateX(100px); }    //50% времени анимации, коробка сместилась на 100 пикселей вправо 
        100% { transform: translateX(0); }    //Конечная точка ― коробка вернулась на место 
    }

3. Свойства анимации

  • animation-name — для удобства работы каждой анимации нужно присвоить имя.
  • animation-duration — продолжительность анимации в секундах.
  • animation-timing-function — как скорость анимации будет меняться со временем, например, линейно.
  • animation-delay — задержка воспроизведения в секундах.
  • animation-iteration-count — повторения анимации, например, 2 раза.
  • animation-direction — в каком направлении будет проигрываться анимация, например, в обратном порядке.
  • animation-fill-mode — стиль, который применяется до и после анимации.
  • animation-play-state — останавливает или запускает воспроизведение.

В качестве примера пропишем анимацию с плавным увеличением предмета, сменой цвета и вращением:
// Определение имени анимации grow-and-rotate
@keyframes grow-and-rotate {
// Самый первый кадр анимации (0% прогресса) 
    0% {
        transform: scale(1) rotate(0deg);     //Размер элемента не изменен, нет поворота 
        background-color: blue;                  //Элемент синего цвета 
    }
 
//Середина анимации (50% прогресса)
    50% {
        transform: scale(1.5) rotate(180deg);    //Элемент увеличивается в 1.5 раза и поворачивается на 180 градусов */
        background-color: green;                     //Цвет меняется на зеленый 
    }
//Конечное состояние анимации (100% прогресса)
    100% {
        transform: scale(1) rotate(360deg);    //Элемент возвращается к начальному размеру и поворачивается на 360 градусов
        background-color: blue;                  //Фоновый цвет снова становится синим
    }
}
//Пропишем стили анимированного элемента
.element {
    width: 100px; 
    height: 100px;
    background-color: blue;     //Исходный фоновый цвет 
    animation: grow-and-rotate 4s ease-in-out infinite;     //Применение анимации, длительностью 4 секунды, плавное ускорение и замедление, бесконечное повторение
}

Примеры CSS-анимаций

Для начала определим в HTML объект:
<button class="button">Нажми меня</button>
Затем пропишем его анимацию, где будет меняться цвет и размер под курсором:
.button {
    padding: 10px 20px;
    background-color: 3498db;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;  //Меняться будет цвет кнопки, за 0,3 секунды
}
.button:hover {
    background-color: 2980b9;    //Когда курсор будет на элементе, он поменяет цвет
    transform: scale(1.1);            //И увеличится в размере 
}

Анимация текста

Сначала пропишем в HTML текст, который будем анимировать:
  <div class="text">Анимированный текст</div>
Далее добавим в CSS изменение его цвета и перемещение:
@keyframes text-animation {
    0% {
        color: red;
        transform: translateX(0);
    }
    50% {
        color: blue;
        transform: translateX(50px);
    }
    100% {
        color: green;
        transform: translateX(0);
    }
}
.text {
    font-size: 24px;
    animation: text-animation 3s ease-in-out infinite;     //Запускаем анимацию длительностью 3 секунды с бесконечным повторением
}

Анимация вращения

Необходим объект, который будет вращаться:
<div class="spinner"></div>
Теперь в CSS можно добавить анимацию:
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
.spinner {
    width: 50px;
    height: 50px;
    background-color: e74c3c;
    animation: spin 2s linear infinite;      //Запуск поворота анимации на 360, бесконечно

Анимация появления

В HTML опишем элемент, который будет появляться и исчезать:
  <div class="fade-in-element">Я появляюсь!</div>
Пропишем в CSS свойства, чтобы он проявлялся на сайте:
@keyframes fade-in {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.fade-in-element {
    opacity: 0;      //Начальное состояние — невидимый элемент 
    animation: fade-in 1.5s ease forwards;      //Запускаем появление и исчезновение объекта
}

Анимация при наведении

Пропишем коробку, которая будет реагировать на движение курсора мыши:
<div class="hover-box"></div>
Пропишем анимацию в виде изменения ее формы и цвета под курсором:
.hover-box {
    width: 100px;
    height: 100px;
    background-color: 9b59b6;
    transition: all 0.5s ease;
}
.hover-box:hover {
    background-color: 8e44ad;     //Изменение цвета 
    border-radius: 50%;      //Превращение в круг 
    transform: rotate(45deg);      //Поворот на 45 градусов 
}

Советы по созданию плавных CSS-анимаций

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

  1. Чем больше ключевых кадров будет прописано, тем более плавно будет меняться анимация.
  2. Не делайте анимацию слишком быстрой, например, 200 миллисекунд. Оптимальное время для анимации — 1–5 секунд.
  3. Не используйте функцию изменения скорости воспроизведения слишком часто, ее расчет требует много ресурсов.
  4. Пользуйтесь препроцессорами, такими как Sass или Less, а также не прописывайте много свойств объектам, это может замедлить воспроизведение.
  5. Посмотрите, как воспроизводится движение на разных устройствах, чтобы понять, не нужно ли упростить анимацию.
  6. Не создавайте слишком много анимированных объектов на одном экране, чтобы не замедлить работу устройства.

Оптимизация для плавности: использование GPU

Графический процессор позволяет создавать гладкие анимации. Однако, чтобы его задействовать, необходимо соблюдать ряд условий:

1. Используйте свойства transform или opacity. Именно они анимируются графическим процессором, что позволяет делать множество анимаций на одной странице.
2. Старайтесь не использовать анимации, заставляющие компьютер пересчитывать весь макет. Это произойдет, если менять свойства width, height, margin, padding.
3. Прописывайте объектам свойство will-change, которое подсказывает браузеру, что этот объект будет анимирован, и оптимизирует его рендеринг.
4. Создавайте анимации только ключевых элементов, не нужно перегружать страницу большим количеством движущихся объектов.

Выбор подходящей длительности и функции плавности (ease, linear)

Чтобы анимация была заметной и не утомляла пользователей, выбирайте средние значения длительности ― 3–5 секунд.

Также важно правильно подобрать функцию плавности отображения:

  • ease ― медленное начало, разгон в середине и замедление в конце.
  • linear ― линейное воспроизведение.
  • ease-in ― медленно начинается и ускоряется к финалу.
  • ease-out ― быстро начинается и замедляется к финалу.
  • ease-in-out ― медленное начало и конец с ускорением в середине.

Частые ошибки при работе с CSS-анимациями

Перегрузка страницы анимациями

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

Неправильное сочетание функций плавности

Если некорректно подобрать функции, они будут смотреться неестественно и вызовут неприятные ощущения у пользователей. Не используйте линейную скорость для всех анимаций — они будут выглядеть неестественно. Для каждого эффекта выбирайте подходящую ему плавность. Например, для исчезновения объекта не подойдет функция ease-in, потому что он будет пропадать слишком быстро.

Игнорирование адаптивности

Анимация, которая хорошо смотрится на компьютере, может выглядеть иначе на мобильных устройствах. Это связано с тем, что у смартфонов производительность обычно меньше, они не могут воспроизвести сложные движения плавно.

И еще несколько рекомендаций, чтобы ваши анимации были привлекательными и эффективными.

  • Для мобильных устройств анимации лучше сократить до минимума. Применяйте медиазапросы, чтобы понимать, с какого устройства к вам зашел пользователь.
  • Откажитесь от движений, которые мешают пользоваться маленьким экраном.
  • Не забудьте протестировать сайт на разных устройствах, чтобы понять, не мешают ли анимации воспринимать информацию на странице.
Профессия Web-разработчик со скидкой до 57% и подарками на 135 000 ₽
Подписка РБК Pro на 6 месяцев
3 мини-курса в подарок
Интенсив РБК Pro на выбор

Комментарии

Нажимая кнопку «Получить консультацию», вы подтверждаете согласие на обработку персональных данных в соответствии с условиями Политики конфиденциальности

Проконсультируйтесь
с карьерным специалистом

Проанализируем ваши навыки, сферу интересов и дадим рекомендации по дальнейшему профессиональному развитию

Вам может понравиться

3
дн.
час.
мин.
сек.
:
00
:
00
:
00
скидка до 57% и подарки на 135 000 ₽
Анимации на веб-странице ― отличный способ акцентировать внимание посетителей на определенном элементе и сделать сайт не похожим на другие. Анимации в CSS предназначены для создания и изменения элементов на странице — с их помощью можно реализовать как простые, так и сложные движения, например, вращение. Расскажем, что такое CSS-анимация и как ее сделать. H2 CSS-анимации: что это и зачем они нужны CSS или Cascading Style Sheets в переводе с английского — «каскадные таблицы стилей». Это формальный язык, который используют для описания внешнего вида веб-страницы. Важно не путать его с языком программирования. CSS разработали более 20 лет назад, чтобы упростить работу с примитивным HTML, на котором тогда верстали все сайты. Веб-страницы в то время выглядели весьма однообразно: списки, таблицы и редко изображения. CSS стал инструментом, который позволил сделать интернет таким, каким мы видим его сейчас. На этом языке можно прописывать свойства любых элементов на сайте и видоизменять их, как захочется ― устанавливать размеры, положение на экране и поведение в зависимости от действий пользователя. Анимации в CSS ― способ придать сайту динамики. Они не такие сложные, как фреймворки для анимирования элементов на JavaScript. Для создания CSS-анимаций не нужны глубокое знание языков программирования и подключение к веб-странице тяжелых плагинов. В CSS достаточно описать кадры вашей анимации, чтобы она начала работать. Например, чтобы при наведении курсора квадрат расширялся на 10 пикселей с каждой стороны за две секунды, нужно прописать положение квадрата в начальной и конечной точке движения ― keyframes. Дополнительно необходимо указать такие параметры, как скорость анимации и количество ее повторов ― будет она проигрываться только один раз или бесконечно. Кроме того, важно привязать анимацию к объекту, который нужно оживить. Все остальное CSS делает сам ― рассчитывает промежуточные положения и воспроизводит анимацию, как только пользователь наводит курсор на квадрат. Писать код на CSS достаточно просто: нужно запомнить, что обозначают конкретные параметры и менять числовые значения до тех пор, пока анимация не будет выполнять те действия, которые вы задумали. Н3 Преимущества анимаций CSS Интерактивный интерфейс привлекает пользователей. С помощью анимации можно выделить тот фрагмент страницы, который необходимо использовать. CSS не требует глубоких знаний в программировании. Анимации запускаются прямо в браузере и не перегружают компьютер. CSS-анимации работают во всех современных браузерах, а значит сайт будет одинаково хорошо функционировать на разных системах. CSS-анимации прописываются отдельно от кода страницы, что упрощает его поддержку. Если вы хотите глубже разбираться в веб-разработке и в CSS-анимациях, пройдите обучение на курсе «Профессия Веб-разработчик» от ProductStar. С его помощью вы с нуля изучите основы создания сайтов и научитесь создавать анимированные веб-страницы с использованием CSS и фреймворков JavaScript. А в конце обучения специалисты Карьерного центра помогут вам найти работу по специальности. Стоковая фотография 375299896: Программный код разработчика программного обеспечения. Абстрактный | Shutterstock Alt: CSS-анимации создаются с помощью языка CSS Title: Код на CSS только кажется сложным, на самом деле в нем легко разобраться H2 Основы создания CSS-анимаций Два главных параметра анимаций в CSS ― это переходы (transition) и ключевые кадры (@keyframes). Рассмотрим детально процесс создания таких анимаций, а также разберем, как настроить длительность, задержку и повторение. H3 1. Переходы Переход ― это плавное изменение параметров объекта после смены его состояния, например, когда на него наводят курсор мыши или когда он появляется на экране. Основные свойства: transition-property — прописываем свойство для анимации, например, прозрачность или размер. transition-duration — время в секундах, за которое меняется свойство, например, 1 секунда. transition-timing-function — функция скорости изменения, например, линейное перемещение или перемещение с задержкой старта и разгоном к финалу. transition-delay — пауза перед началом анимации в секундах. Для примера создадим анимацию перехода: .button { background-color: black; //Кнопка сначала будет черного цвета transition: background-color 0.7s ease-in-out, transform 0.5s ease; //Прописали скорость и функцию анимации для цвета кнопки } .button:hover { background-color: red; //Цвет кнопки изменится на красный, когда на нем будет курсор transform: scale(1.2); //Кнопка увеличится в 1,2 раза } Н3 2. Ключевые кадры @keyframes ― это состояния элемента в определенный момент времени. С их помощью можно, например, превратить квадрат в круг и обратно, просто описав эти состояния.
// Используйте HTML, чтобы добавить на страницу «коробку» Далее пропишите в CSS: .box { width: 200px; // Коробка в высоту будет 200 пикселей height: 200px; // В ширину тоже 200 пикселей background-color: blue; //Цвет ― голубой animation: slide 2s ease-in-out infinite; // Прописываем параметры анимации, коробка будет двигаться слева направо 2 секунды, с постоянным ускорением, бесконечно } @keyframes slide { 0% { transform: translateX(0); } // Начальное состояние нашей анимации, коробка стоит на 0 по оси X 50% { transform: translateX(100px); } //50% времени анимации, коробка сместилась на 100 пикселей вправо 100% { transform: translateX(0); } //Конечная точка ― коробка вернулась на место } Н3 3. Свойства анимации animation-name — для удобства работы каждой анимации нужно присвоить имя. animation-duration — продолжительность анимации в секундах. animation-timing-function — как скорость анимации будет меняться со временем, например, линейно. animation-delay — задержка воспроизведения в секундах. animation-iteration-count — повторения анимации, например, 2 раза. animation-direction — в каком направлении будет проигрываться анимация, например, в обратном порядке. animation-fill-mode — стиль, который применяется до и после анимации. animation-play-state — останавливает или запускает воспроизведение. В качестве примера пропишем анимацию с плавным увеличением предмета, сменой цвета и вращением: // Определение имени анимации grow-and-rotate @keyframes grow-and-rotate { // Самый первый кадр анимации (0% прогресса) 0% { transform: scale(1) rotate(0deg); //Размер элемента не изменен, нет поворота background-color: blue; //Элемент синего цвета } //Середина анимации (50% прогресса) 50% { transform: scale(1.5) rotate(180deg); //Элемент увеличивается в 1.5 раза и поворачивается на 180 градусов */ background-color: green; //Цвет меняется на зеленый } //Конечное состояние анимации (100% прогресса) 100% { transform: scale(1) rotate(360deg); //Элемент возвращается к начальному размеру и поворачивается на 360 градусов background-color: blue; //Фоновый цвет снова становится синим } } //Пропишем стили анимированного элемента .element { width: 100px; height: 100px; background-color: blue; //Исходный фоновый цвет animation: grow-and-rotate 4s ease-in-out infinite; //Применение анимации, длительностью 4 секунды, плавное ускорение и замедление, бесконечное повторение } Стоковая фотография 520314349: разработка веб-кода программирование программирование HTML экран | Shutterstock Alt: Основы создания CSS-анимаций Title: Выучив ключевые свойства CSS, можно анимировать любые объекты на сайтах H2 Примеры CSS-анимаций H3 Анимация кнопок Для начала определим в HTML объект: Затем пропишем его анимацию, где будет меняться цвет и размер под курсором: .button { padding: 10px 20px; background-color: 3498db; color: white; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.3s ease, transform 0.3s ease; //Меняться будет цвет кнопки, за 0,3 секунды } .button:hover { background-color: 2980b9; //Когда курсор будет на элементе, он поменяет цвет transform: scale(1.1); //И увеличится в размере } H3 Анимация текста Сначала пропишем в HTML текст, который будем анимировать:
Анимированный текст
Далее добавим в CSS изменение его цвета и перемещение: @keyframes text-animation { 0% { color: red; transform: translateX(0); } 50% { color: blue; transform: translateX(50px); } 100% { color: green; transform: translateX(0); } } .text { font-size: 24px; animation: text-animation 3s ease-in-out infinite; //Запускаем анимацию длительностью 3 секунды с бесконечным повторением } H3 Анимация вращения Необходим объект, который будет вращаться:
Теперь в CSS можно добавить анимацию: @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .spinner { width: 50px; height: 50px; background-color: e74c3c; animation: spin 2s linear infinite; //Запуск поворота анимации на 360, бесконечно H3 Анимация появления В HTML опишем элемент, который будет появляться и исчезать:
Я появляюсь!
Пропишем в CSS свойства, чтобы он проявлялся на сайте: @keyframes fade-in { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } } .fade-in-element { opacity: 0; //Начальное состояние — невидимый элемент animation: fade-in 1.5s ease forwards; //Запускаем появление и исчезновение объекта } H3 Анимация при наведении Пропишем коробку, которая будет реагировать на движение курсора мыши:
Пропишем анимацию в виде изменения ее формы и цвета под курсором: .hover-box { width: 100px; height: 100px; background-color: 9b59b6; transition: all 0.5s ease; } .hover-box:hover { background-color: 8e44ad; //Изменение цвета border-radius: 50%; //Превращение в круг transform: rotate(45deg); //Поворот на 45 градусов } Советы по созданию плавных CSS-анимаций Анимации не всегда работают плавно из-за особенностей языка и слабых возможностей производительности устройств, с которых их просматривают. Но есть несколько правил, которые помогут избежать сложностей в виде воспроизведения анимации рывками и ее проскакиваниями: Чем больше ключевых кадров будет прописано, тем более плавно будет меняться анимация. Не делайте анимацию слишком быстрой, например, 200 миллисекунд. Оптимальное время для анимации — 1–5 секунд. Не используйте функцию изменения скорости воспроизведения слишком часто, ее расчет требует много ресурсов. Пользуйтесь препроцессорами, такими как Sass или Less, а также не прописывайте много свойств объектам, это может замедлить воспроизведение. Посмотрите, как воспроизводится движение на разных устройствах, чтобы понять, не нужно ли упростить анимацию. Не создавайте слишком много анимированных объектов на одном экране, чтобы не замедлить работу устройства. Оптимизация для плавности: использование GPU Графический процессор позволяет создавать гладкие анимации. Однако, чтобы его задействовать, необходимо соблюдать ряд условий: 1. Используйте свойства transform или opacity. Именно они анимируются графическим процессором, что позволяет делать множество анимаций на одной странице. 2. Старайтесь не использовать анимации, заставляющие компьютер пересчитывать весь макет. Это произойдет, если менять свойства width, height, margin, padding. 3. Прописывайте объектам свойство will-change, которое подсказывает браузеру, что этот объект будет анимирован, и оптимизирует его рендеринг. 4. Создавайте анимации только ключевых элементов, не нужно перегружать страницу большим количеством движущихся объектов. Выбор подходящей длительности и функции плавности (ease, linear) Чтобы анимация была заметной и не утомляла пользователей, выбирайте средние значения длительности ― 3–5 секунд. Также важно правильно подобрать функцию плавности отображения: ease ― медленное начало, разгон в середине и замедление в конце. linear ― линейное воспроизведение. ease-in ― медленно начинается и ускоряется к финалу. ease-out ― быстро начинается и замедляется к финалу. ease-in-out ― медленное начало и конец с ускорением в середине. Частые ошибки при работе с CSS-анимациями Перегрузка страницы анимациями Когда на одном экране много анимированных элементов, которые работают одновременно, браузер не успевает просчитать их все. Поэтому они могут воспроизводиться рывками или с артефактами. Помните, анимацию необходимо делать только там, где она представляет ценность для пользователя, и не будет отвлекать его от важных элементов. Неправильное сочетание функций плавности Если некорректно подобрать функции, они будут смотреться неестественно и вызовут неприятные ощущения у пользователей. Не используйте линейную скорость для всех анимаций — они будут выглядеть неестественно. Для каждого эффекта выбирайте подходящую ему плавность. Например, для исчезновения объекта не подойдет функция ease-in, потому что он будет пропадать слишком быстро. Игнорирование адаптивности Анимация, которая хорошо смотрится на компьютере, может выглядеть иначе на мобильных устройствах. Это связано с тем, что у смартфонов производительность обычно меньше, они не могут воспроизвести сложные движения плавно. И еще несколько рекомендаций, чтобы ваши анимации были привлекательными и эффективными. Для мобильных устройств анимации лучше сократить до минимума. Применяйте медиазапросы, чтобы понимать, с какого устройства к вам зашел пользователь. Откажитесь от движений, которые мешают пользоваться маленьким экраном. Не забудьте протестировать сайт на разных устройствах, чтобы понять, не мешают ли анимации воспринимать информацию на странице.