Ваши ключевые кадры анимации неверны, потому что 100% анимации это не время, когда вы анимируете этот элемент, а время, когда вы анимируете все элементы (полный цикл, который повторяется).Итак, поскольку у вас есть 4 элемента, ваша анимация должна быть:
25% 50% 75% 100%
/* animation *************************************/
/************* animation *************************/
/************************* animation *************/
/************************************* animation */
Что означает:
@keyframes fade {
from {
color: black;
}
12.5% { /* peak of animation */
color: white;
background-color: #1b385c;
}
25% { /* end of animation */
color: black;
background-color: gray;
}
to {
/* 75% stand still - same value as 25% and from */
}
}
Вам на самом деле не нужно to
здесь.Я просто положил его туда, чтобы прокомментировать.Вы можете удалить его.
И animation
должно быть:
animation: fade 4s linear infinite;
(Я удаляю альтернативу: вы не разворачиваетесь, потому что она не симметрична. Она анимирована на 25% иостальные 75% все еще.) См. это работает:
ul {
display: flex;
list-style-type: none;
flex-wrap: wrap;
}
li {
flex-basis: 50%;
color: green;
height: 100px;
background-color: gray;
border: 1px solid black;
box-sizing: border-box;
animation: fade 4s linear infinite;
}
li:nth-of-type(2) {
animation-delay: 1s;
}
li:nth-of-type(3) {
animation-delay: 2s;
}
li:nth-of-type(4) {
animation-delay: 3s;
}
@keyframes fade {
from {
color: black;
}
12.5% {
color: white;
background-color: #1b385c;
}
25% {
color: black;
background-color: gray;
}
}
<ul>
<li>content 1</li>
<li>content 2</li>
<li>content 3</li>
<li>content 4</li>
</ul>