CSS3
February 15, 2021

⑩ Задержка анимации: свойство animation-delay

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


Свойство animation-delay определяет, когда анимация начнется. Задается в секундах s или миллисекундах ms.

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

animation-delay

Значения:

  • время - Время определяет длительность задержки между началом анимации (когда анимация применяется к элементу через свойства) и когда она начинает выполняться. Отрицательные значения разрешены, такая задержка начинает анимацию с определенного момента внутри её цикла, т.е. со времени, указанного в задержке. Это позволяет применять анимацию к нескольким элементам со сдвигом фазы, изменяя лишь время задержки. Чтобы анимация началась с середины, нужно задать отрицательную задержку, равную половине времени, установленном в animation-duration. Значение по умолчанию 0s.

Синтаксис

CSS
animation-delay: 5s;
animation-delay: 3s, 10ms;
📹 ГИФ 6. Свойство animation-delay
HTML
<div>
  <span class="one"></span>
  <span class="two"></span>
  <span class="three"></span>
  <span class="four"></span>
 </div>
CSS
body {
  margin: 0;
  background: #F4EDE5;
}
div {
  width: 100px;
  height: 100px;
  transform: translate(-50%, -50%);
  position: absolute; 
  top: 50%; 
  left: 50%;
}
span {
  display: block;
  position: absolute;
  width: 40%;
  height: 40%;
  border-radius: 50%;
  box-shadow: 2px 2px 3px rgba(0,0,0,.4);
  -webkit-animation: run 2s infinite ease-in-out;
  animation: run 2s infinite ease-in-out;
}

.one {
  background: #F3B222;
  -webkit-animation-delay: 1.5s;
  animation-delay: 1.5s;
}
.two {
  background: #F0653E;
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
}
.three {
  background: #B9C0C0;
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}
.four {
  background: #8F7473;
}

@-webkit-keyframes run {
  0% {
    transform: translate(0%);
    border-radius: 50%;
  }
  25% {
    transform: translate(150%) scale(0.5); 
    border-radius: 0%;
  }
  50% {
    transform: translate(150%, 150%);
    border-radius: 50%; 
  }
  75% {
    transform: translate(0%, 150%) scale(0.5); 
    border-radius: 0%;
  }
}
@keyframes run {
  0% {
    transform: translate(0%);
    border-radius: 50%;
  }
  25% {
    transform: translate(150%) scale(0.5); 
    border-radius: 0%;
  }
  50% {
    transform: translate(150%, 150%);
    border-radius: 50%; 
  }
  75% {
    transform: translate(0%, 150%) scale(0.5); 
    border-radius: 0%;
  }
}

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