Что такое keyframes и как можно использовать?

Этот вопрос помогает оценить способность разработчика работать с анимациями.

Короткий ответ

Keyframes — это правило в CSS, которое определяет промежуточные состояния анимации. Оно позволяет указать, как элемент должен выглядеть на разных этапах анимации. 

Используя директиву @keyframes, можно задавать стили в определённые моменты времени. Затем анимация применяется к элементу через свойство animation, где указывается название ключевых кадров и другие параметры, такие как продолжительность и тайминг.

Длинный ответ

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

  1. Определение ключевых кадров: Создаётся правило @keyframes, указывающее, как должен изменяться стиль элемента в разные моменты времени.

    @keyframes example {
       from {
           opacity: 0; /* Начальная прозрачность */
           transform: translateY(-20px); /* Начальное смещение */
       }
       to {
           opacity: 1; /* Конечная прозрачность */
           transform: translateY(0); /* Конечное смещение */
       }
    }
  2. Применение анимации к элементу: Используется свойство animation, чтобы применить анимацию к элементу, указав название ключевых кадров, продолжительность и тайминг.

    .fade-in {
       animation: example 1s ease-in-out; /* 1 секунда, плавное начало и конец */
    }
  3. Дополнительные параметры анимации: Можно указать свойства, такие как animation-delay для задержки перед началом анимации, и animation-iteration-count для задания количества повторений.

    .fade-in {
       animation: example 1s ease-in-out 0.5s 2; /* 2 повтора после 0.5 секунды задержки */
    } 
  4. Использование нескольких ключевых кадров: Можно создавать более сложные анимации, определяя несколько промежуточных кадров с использованием процентов.

    @keyframes complex-animation {
    	0% {
    		opacity: 0;
    		transform: translateY(-20px);
    	}
    	50% {
    		opacity: 0.5;
    		transform: translateY(10px);
    	}
    	100% {
    		opacity: 1;
    		transform: translateY(0);
    	}
    } 

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    10

Навыки

  • CSS

    CSS

Ключевые слова

Подпишись на React Developer в телеграм