CSS3
February 15, 2021

⑧ Направление анимации: свойство animation-direction

Продолжим изучение темы CSS3 - анимация. Если пропустили прошлые статьи, то вот ссылки на них:


Свойство animation-direction определяет, должна ли анимация воспроизводиться в обратном порядке в некоторых или во всех циклах. Когда анимация воспроизводится в обратном порядке, временные функции также меняются местами. Например, при воспроизведении в обратном порядке функция ease-in будет вести себя как ease-out.

Свойство не наследуется.

animation-direction

Значения:

  • normal - Все повторы анимации воспроизводятся так, как указано. Значение по умолчанию.
  • reverse - Все повторы анимации воспроизводятся в обратном направлении от того, как они были определены.
  • alternate - Каждый нечетный повтор цикла анимации воспроизводятся в нормальном направлении, каждый четный повтор воспроизводится в обратном направлении.
  • alternate-reverse - Каждый нечетный повтор цикла анимации воспроизводятся в обратном направлении, каждый четный повтор воспроизводится в нормальном направлении.
  • initial - Устанавливает значение свойства в значение по умолчанию.
  • inherit - Наследует значение свойства от родительского элемента.

Чтобы определить, является ли повтор цикла анимации четной или нечетной — количество повторов начинается с 1.

Синтаксис

CSS
animation-direction: normal;
animation-direction: reverse;
animation-direction: alternate;
animation-direction: alternate-reverse;
animation-direction: normal, reverse;
animation-direction: alternate, reverse, normal;
animation-direction: initial;
animation-direction: inherit;
📹 ГИФ 4. Примеры использования свойств animation-direction
HTML
<div class="container">
  <kbd>animation-direction: alternate;</kbd>
<ul class="alternate">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>
  <kbd>animation-direction: alternate-reverse;</kbd>
<ul class="alternate-reverse">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>
  <kbd>animation-direction: normal;</kbd>
<ul class="normal">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>
  <kbd>animation-direction: reverse;</kbd>
<ul class="reverse">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>
</div>
CSS
body {
  margin: 0;
  text-align: center;
  background: url(https://html5book.ru/wp-content/uploads/2015/05/background1.png);
}
.container {
  width: 660px;
  margin: 50px auto;
}
ul {
  padding: 0;
  list-style: none;
  margin-bottom: 40px;
}
li {
  display: inline-block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  margin-right: 10px; 
  box-shadow: 1px 1px 2px rgba(0,0,0,.3);
}
li:nth-child(1) {background:#8A6C5E}
li:nth-child(2) {background:#BBDADE}
li:nth-child(3) {background:#F6D5A1}
li:nth-child(4) {background:#FAC0B0}
li:nth-child(5) {background:#FF615B}
.alternate li {
  -webkit-animation: shake .7s linear alternate infinite;
  animation: shake .7s linear alternate infinite;
}
.alternate-reverse li {
  -webkit-animation: shake 0.7s linear alternate-reverse infinite;
  animation: shake 0.7s linear alternate-reverse infinite;
}
.normal li {
  -webkit-animation: shake 0.7s linear normal infinite;
  animation: shake 0.7s linear normal infinite;
}
.reverse li {
  -webkit-animation: shake 0.7s linear reverse infinite;
  animation: shake 0.7s linear reverse infinite;
}
@-webkit-keyframes shake {
  100% {
    -webkit-transform: translateX(-30px);    
  }
}
@keyframes shake {
  100% {
    transform: translateX(-30px);    
  }
}

Продолжение в следующей статье!