Свойство animation (для браузеров Chrome, Safari, Opera нужно использовать другое свойство: -webkit-animation) в CSS можно использовать для анимации многих свойств CSS, таких как цвет, фон, цвет, высота или ширина. Каждая анимация должна быть определена с помощью директивы @keyframes (для браузеров Chrome, Safari, Opera нужно использовать другую директиву: @-webkit-keyframes ), которая затем вызывается со свойством анимации.
Набор свойств, которые могут быть анимированы
background |
background-color |
background-position |
background-size |
border |
border-bottom |
border-bottom-color |
border-bottom-left-radius |
border-bottom-right-radius |
border-bottom-width |
border-color |
border-left |
border-left-color |
border-left-width |
border-right |
border-right-color |
border-right-width |
border-spacing |
border-top |
border-top-color |
border-top-left-radius |
border-top-right-radius |
border-top-width |
bottom |
box-shadow |
clip |
color |
column-count |
column-gap |
column-rule |
column-rule-color |
column-rule-width |
column-width |
columns |
filter |
flex |
flex-basis |
flex-grow |
flex-shrink |
font |
font-size |
font-size-adjust |
font-stretch |
font-weight |
height |
left |
letter-spacing |
line-height |
margin |
margin-bottom |
margin-left |
margin-right |
margin-top |
max-height |
max-width |
min-height |
min-width |
opacity |
order |
outline |
outline-color |
outline-offset |
outline-width |
padding |
padding-bottom |
padding-left |
padding-right |
padding-top |
perspective |
perspective-origin |
right |
text-decoration-color |
text-indent |
text-shadow |
top |
transform |
transform-origin |
vertical-align |
visibility |
width |
word-spacing |
z-index |
|
|
Свойство CSS - animation позволяет анимировать переходы от одной конфигурации стиля CSS в другую.
Анимация состоит из двух компонентов: стиля, описывающего анимацию и набора ключевых кадров, которые указывают начальное и конечное состояния стиля анимации, а также возможные промежуточные точки.
Существуют три ключевых преимущества использования CSS - анимации перед традиционными методами анимации, управляемыми скриптами:
Чтобы создать CSS - анимацию, необходимо оформить элемент, который нужно анимировать, с помощью свойства анимации. Это позволяет настроить время, продолжительность и другие детали того, как последовательность анимации должна выполняться. Но это не настраивает реальный внешний вид анимации, что выполняется с помощью правила @keyframes.
animation-delay |
animation-delay: 3s; |
Настраивает задержку между загрузкой элемента и началом последовательности анимации. |
animation-direction |
/* Единственная анимация */ /* Множественные анимации */ /* Глобальные значения */ |
Настраивает, должна ли анимация чередовать направление на каждом прогоне последовательности или сбрасываться до начальной точки и повторяться сама. |
animation-duration |
animation-duration: 6s; |
Настраивает продолжительность времени, которое анимация должна выполнить для завершения одного цикла. |
animation-iteration-count |
animation-iteration-count: infinite; animation-iteration-count: 2, 0, infinite; |
Настраивает количество повторений анимации; Вы можете указать бесконечное повторение анимации на неопределенный срок. |
animation-name |
|
Задаёт имя директивы @keyframes . |
animation-play-state |
/* Одна анимация */ /* Множественные анимации */ /* Глобальные значения */ |
Позволяет приостановить и возобновить последовательность анимации. |
animation-timing-function |
/* Keyword values */ /* Function values */ /* Multiple animations */ /* Global values */ |
Настраивает время анимации; То есть как анимация переходит через ключевые кадры, устанавливая кривые ускорения. |
animation-fill-mode |
forwards, backwards, both, none animation-fill-mode: none; /* Several values may be given, separated by commas. */ |
Настраивает, какие значения применяются анимацией до и после ее выполнения. |
HTML
CSS
DIV{
display: inline-block;
padding: 10px 20px;
margin: 20px;
border: 1px solid red;
}
#div1{
animation-duration: 1s;
animation-iteration-count: infinite;
animation-play-state: paused;
animation-timing-function: linear;
}
#div1:hover{
animation-play-state: running;
animation-name: div1;
}
@keyframes div1{
to{
transform: rotate(1turn);
}
}
#div2{
animation-duration: 5s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
animation-name: div2;
animation-direction: alternate;
}
#div2:hover{
animation-name: resetAnimation;
}
@keyframes div2{
from{
position: relative;
left: 0px;
}
to{
position: relative;
left: 300px;
}
}
#div3{
animation-duration: 5s;
animation-iteration-count: 1;
animation-timing-function: ease-in-out;
animation-name: div3;
}
@keyframes div3 {
0% {
transform: scale(0.1);
opacity: 0;
}
60% {
transform: scale(1.2);
opacity: 1;
}
100% {
transform: scale(1);
}
}
@keyframes resetAnimation {
/* Reset animation : apply empty animation*/
}
Видео