CSS анимация через элементы ul

#css #animation

Вопрос:

У меня есть неупорядоченный список, и я хотел бы просмотреть каждый элемент списка 1 на 1. В настоящее время у меня есть полуработающее решение, но если вы посмотрите внимательно, вы увидите, что, когда оно доходит до «пункта 4», оно начинает перекрываться с «пунктом 1» и несовместимо.

 @keyframes fadein {
  0% {
    opacity: 0;
  }
  66% {
    opacity: 0;
  }
  76% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

li {
  list-style: none;
  padding: 0;
  font-size: 40px;
  position: absolute;
  width: 100%;
  opacity: 0;
}

li:nth-of-type(1) {
  animation: fadein 6s ease-in-out -4s infinite alternate;
}

li:nth-of-type(2) {
  animation: fadein 6s ease-in-out 0s infinite alternate;
}

li:nth-of-type(3) {
  animation: fadein 6s ease-in-out 4s infinite alternate;
}

li:nth-of-type(4) {
  animation: fadein 6s ease-in-out 8s infinite alternate;
} 
 <ul class="usp__list">
  <li class="usp__item">
    Item 1
  </li>
  <li class="usp__item">
    Item 2
  </li>
  <li class="usp__item">
    Item 3
  </li>
  <li class="usp__item">
    Item 4
  </li>
</ul> 

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

Скрипка — https://jsfiddle.net/15c4rd8v/

Ответ №1:

Твой animation-duration слишком короткий. У вас есть animation-delay до 8s , но продолжительность только 6s для перекрытия 2s . Если вы установите длительность 8s и измените анимацию ...66% {...} 76%... 75% {...} 80%... ключевых кадров на «она работает».

 @keyframes fadein {
  0% {
    opacity: 0;
  }
  75% {
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

li {
  list-style: none;
  padding: 0;
  font-size: 40px;
  position: absolute;
  width: 100%;
  opacity: 0;
}

li:nth-of-type(1) {
  animation: fadein 8s ease-in-out -4s infinite alternate;
}

li:nth-of-type(2) {
  animation: fadein 8s ease-in-out 0s infinite alternate;
}

li:nth-of-type(3) {
  animation: fadein 8s ease-in-out 4s infinite alternate;
}

li:nth-of-type(4) {
  animation: fadein 8s ease-in-out 8s infinite alternate;
} 
 <ul class="usp__list">
  <li class="usp__item">
    Item 1
  </li>
  <li class="usp__item">
    Item 2
  </li>
  <li class="usp__item">
    Item 3
  </li>
  <li class="usp__item">
    Item 4
  </li>
</ul>