Я пытался сделать постепенное исчезновение, используя обычный CSS и без jquery в списке, чтобы он мог исчезать один за другим. Однако я знаю, как это сделать, лишь в ограниченном списке. Как мне зациклить css, чтобы независимо от того, сколько у меня списка, он все еще работал.
Вот что я сделал:
.ladder {
opacity: 0;
-webkit-animation: fadeIn 0.9s 1;
animation: fadeIn 0.9s 1;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.ladder:nth-child(5n+1) {
-webkit-animation-delay: 0.2s;
animation-delay: 0.2s;
}
.ladder:nth-child(5n+2) {
-webkit-animation-delay: 0.4s;
animation-delay: 0.4s;
}
.ladder:nth-child(5n+3) {
-webkit-animation-delay: 0.6s;
animation-delay: 0.6s;
}
.ladder:nth-child(5n+4) {
-webkit-animation-delay: 0.8s;
animation-delay: 0.8s;
}
.ladder:nth-child(5n+5) {
-webkit-animation-delay: 1.0s;
animation-delay: 1.0s;
}
@-webkit-keyframes fadeIn {
0% {
opacity: 0.0;
}
100% {
opacity: 1.0;
}
}
@keyframes fadeIn {
0% {
opacity: 0.0;
}
100% {
opacity: 1.0;
}
}<li class = "ladder">A</li>
<li class = "ladder">B</li>
<li class = "ladder">C</li>
<li class = "ladder">D</li>
<li class = "ladder">E</li>Мой вопрос: как заставить CSS работать независимо от того, сколько там списков.






Вот идея использования переменной CSS, которая позволяет сократить код. Это не универсально, но проще добавить простой встроенный CSS к каждому li, чем писать сложный CSS:
.ladder {
opacity: 0;
animation: fadeIn 1s var(--d) forwards;
}
@keyframes fadeIn {
100% {
opacity: 1;
}
}<ul>
<li style = "--d:0s" class = "ladder">A</li>
<li style = "--d:0.2s" class = "ladder">B</li>
<li style = "--d:0.4s" class = "ladder">C</li>
<li style = "--d:0.6s" class = "ladder">D</li>
<li style = "--d:0.8s" class = "ladder">E</li>
</ul>Вот еще одна идея, где вы можете применить анимацию на ul:
ul {
position:relative;
}
ul:before {
content:"";
position:absolute;
top:-20px;
bottom:0;
left:0;
right:0;
background:linear-gradient(to bottom,transparent,#fff 20px);
animation:fadeIn 2s forwards
}
@keyframes fadeIn {
0% {
top:-10px;
}
100% {
top: 100%;
}
}<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>@Squish я добавил еще одну идею;)
Хахахах, это больше похоже на скольжение вниз, но это вроде как работает! Спасибо
@Squish, я сделал небольшую корректировку, чтобы он выглядел лучше;)
почему над списком нависает тень: P
@Squish для лучшего эффекта :)
Возможно ли это без использования встроенного CSS?