Создаем 5 простых CSS анимаций используя ключевые кадры

В этом практическом уроке я покажу вам несколько простых анимаций, которые можно создать с помощью ключевых кадров (keyframes) в CSS. Это будут простые примеры, более сложные варианты рассмотрим в последующих уроках. Желательно, чтобы сначала вы ознакомились с теоретической частью — рассмотрели CSS-анимацию (animation) и ключевые кадры @keyframes.

С помощью ключевых кадров @keyframes CSS можно создавать практически любую анимацию. В основе их работы заключается принцип сменяемости CSS стилей за определенный период времени. Изменять CSS стили можно сколь угодно раз и в любые промежутки времени.

А теперь давайте перейдем к практике.

 

Как создать CSS анимацию с @keyframes

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

<div class="blok-dlya-animaciyi">
  <button class="animaciya {тип анимации} btn-button">Кнопка</button>
</div>

С помощью приведенного выше кода я создал родительский элемент div с классом blok-dlya-animaciyi (обертку для анимированного элемента), и дочерний элемент Кнопка (button) с нужными классами: animaciya (общие настройки анимации) и {тип анимации} (заменить позже конкретным типом анимации). Ниже присваиваем CSS стили для общих настроек анимации:

/* Общая конфигурация анимации (продолжительность и режим) */.animaciya {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
}

Далее, используя класс {тип анимации}, я буду определять, какую анимацию хочу применить к элементу.

Ниже я приведу пример 5 основных и простых анимаций, которые можно легко создать только с помощью ключевых кадров @keyframes в CSS.

 

Анимация подпрыгивания (bounce)

Чтобы создать анимацию подпрыгивания кнопки, я использую свойство transform, чтобы изменять координаты объекта и с помощью ключевых кадров @keyframes распределить по времени эти изменения. Следующий код позволяет перемещать кнопку вверх и вниз (по вертикальной оси). Обратите внимание, что мы должны заменить класс {тип анимации} на bounce (в данном случае; ниже в примерах — другие классы). Добавьте эти стили в свой HTML файл и так вы задействуете анимацию в виде подпрыгивания кнопки:

/* Ключевые кадры анимации подпрыгивания (bounce) */@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);}
  40% {-webkit-transform: translateY(-30px);}
  60% {-webkit-transform: translateY(-15px);}
}
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
  40% {transform: translateY(-30px);}
  60% {transform: translateY(-15px);}
}
/* применяю анимацию подпрыгивания (bounce) для кнопки */.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
}

По схожему принципу делаю следующие виды анимаций.

 

Анимация появления/исчезновения через затухание (fade)

Для этой анимации я использую свойство непрозрачности (opacity) в CSS: для появления (fadeIn) кнопки — от 0 до 1, а для угасания (fadeOut) — от 1 до 0. Вот такой получается CSS код:

/* Ключевые кадры анимации появления через затухание fadeIn */@-webkit-keyframes fadeIn {
  0% {opacity: 0;}
  100% {opacity: 1;}
}
@keyframes fadeIn {
  0% {opacity: 0;}
  100% {opacity: 1;}
}
/* применяю анимацию появления через затухание (fadeIn) к кнопке */.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}
/* Ключевые кадры анимации исчезновения через затухание fadeOut */ 
@-webkit-keyframes fadeOut { 
  0% {opacity: 1;} 
  100% {opacity: 0;} 
}
@keyframes fadeOut {
  0% {opacity: 1;}
  100% {opacity: 0;} 
}
/* применяю анимацию исчезновения через затухание (fadeOut) для кнопки */ 
.fadeOut { 
  -webkit-animation-name: fadeOut; 
  animation-name: fadeOut;
}

Идем дальше, и по схожему принципу сделаем другие виды анимации.

 

Анимация пульсирования (pulse)

Для этой анимации я использую свойство масштабирования scale:

/* Ключевые кадры анимации пульсирования (pulse) */@-webkit-keyframes pulse {
  0% { -webkit-transform: scale(1); }
  50% { -webkit-transform: scale(1.1); }
  100% { -webkit-transform: scale(1); }
}
@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}
/* применяю анимацию пульсирования (pulse) для кнопки */.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
}

 

Анимация вспышки (flash)

Для этой анимации я также использую свойство непрозрачности opacity CSS, но с большей частотой, чтобы получить эффект вспышки:

/* Ключевые кадры анимации вспышки (flash) */@-webkit-keyframes flash {
  0%, 50%, 100% {opacity: 1;}
  25%, 75% {opacity: 0;}
}
@keyframes flash {
  0%, 50%, 100% {opacity: 1;}
  25%, 75% {opacity: 0;}
}
/* применяю анимацию вспышки (flash) для кнопки */.flash {
  -webkit-animation-name: flash;
  animation-name: flash;
}

 

Анимация встряхивания/дрожания (shake)

Здесь похожая анимация с первым примером — подпрыгиванием (bounce), но вместо вверх/вниз, я двигаю элемент по горизонтали — слева направо:

/* Ключевые кадры анимации встряхивания (shake) */@-webkit-keyframes shake {
  0%, 100% {-webkit-transform: translateX(0);}
  10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}
  20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}
}
@keyframes shake {
  0%, 100% {transform: translateX(0);}
  10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}
  20%, 40%, 60%, 80% {transform: translateX(10px);}
}
/* применяю анимацию встряхивания (shake) для кнопки */.shake {
  -webkit-animation-name: shake;
  animation-name: shake;
}

 

Если собрать воедино все вышерассмотренные виды анимации, то получится вот такое демо, что на видео:

 

Если вам понравился сегодняшний урок, поделитесь с друзьями. Если у вас есть вопросы/пожелания по данной теме, не стесняйтесь оставлять комментарии в соответствующем разделе ниже. Благодарю за внимание!

 

Share

Последние посты

Чак Паланик

Кто может — тот делает. Кто не может — тот критикует Чак Паланик   Читать далее

17/04/2024

Ричард Бах

Ни одно желание не дается тебе отдельно от силы, позволяющей его осуществить. Хотя, возможно, для… Читать далее

16/04/2024

Стивен Кинг

Жизнь – это непрерывный опыт, и даже самые плохие моменты занимают свое место в пазле… Читать далее

15/04/2024

неизвестный автор

Люди, которые любят одиночество, дорого заплатили за дружбу с кем-то... неизвестный автор   Читать далее

14/04/2024

Наполеон Хилл

Что разум человека может постигнуть и во что он может поверить, того он способен достичь… Читать далее

13/04/2024

Дейл Карнеги

Веди себя так, будто ты уже счастлив, и ты действительно станешь счастливее Дейл Карнеги   Читать далее

12/04/2024