Анимации / Трансформации
Анимации (animation)
Библиотека анимаций - Animate.css
// синтаксис
@keyframes smoothDisplay {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
// в процентах указана раскадровка анимации:
// 0% - начало, 100% - конец
@keyframes smoothDisplay {
0% {
opacity: 0;
}
50% {
opacity: 0.5;
}
100% {
opacity: 1;
}
}
// Применение анимации
.some-class {
// название
animation-name: smoothDisplay;
// продолжительность
animation-duration: 2s | 2000ms;
// кол-во итераций
animation-iteration-count: 1 | 2 |... | infinite;
// направление (normal - 0-100%, reverse 100%-0)
animation-direction: normal * | reverse;
// задержка (задержка перед стартом)
animation-delay: 1s | 1000ms;
// состояние элемента до и после анимации
// работает только с заданным числом циклов
animation-fill-mode: forwards | backwards | both;
// функция изменения анимации по времении
animation-timing-function: linear * | ease | ease-in | ease-out | ease-in-out;
// режим анимации (можно остиановить через JS)
animation-play-state: running * | paused;
}
animation-fill-mode
- При forwards до начала анимации он находится как в коде, после завершения анимации принимает состояние как на 100% кадре анимации
- При backwards до начала анимации элемент находится на 0% кадре анимации, после анимации возвращается в исходное состояние (как он находится в коде без анимации)
- both объединяет оба свойства, до начала а нимации как на 0% шаге анимации, после анимации как на 100% шаге анимации.
animation-timing-function
- linear - линейная (по ум*);
- ease - парабола;
- ease-in - вогнутая парабола;
- ease-out - выгнутая парабола;
- ease-in-out - S-обр. парабола;
- cubic-bezier (1,1,1,1) - Кривые Бизье;
- steps (5, end) (число_шагов, направление) - изменение по шагам
Краткая запись animation
animation:
1 - |animation-name| имя
2 - |animation-duration| длительность
3 - |animation-timing-function| функция
4 - |animation-iteration-count| повторы
.some-class {
animation: move 3s linear 10;
// Множественная анимация
animation:
rotate 1s linear 1,
spin 3s linear 1;
}