html - 使用纯 CSS 为未知数量的元素设置动画

标签 html css animation

假设我有一个 ul 包含一些 li 元素。假设我有这样的动画:

@keyframes fcolor {
    from {
        color: #123;
    }
    to {
        color: #456;
    }
}

忽略实际颜色,这只是一个简单的演示。

动画应该(为了这个例子假装动画正常工作)改变每个 li 元素的文本颜色。

有没有一种方法可以将此动画按顺序应用到每个 li 元素,中间有 N 毫秒的延迟?我的意思是,有没有办法将该动画应用到第一个 li,然后等待,比如说,30ms,然后将动画应用到第二个 li,再等待 30ms,应用到第三个,等等...

所有这些都不知道 li 元素的数量。 此外,仅 css。我知道这可以使用 javascript 轻松完成。

我再重复一遍,以防万一。我不知道 li 元素的数量,所以像

这样的解决方案
ul:nth-child(1) {
    animation: fcolor 100ms ease 0ms;
}

ul:nth-child(2) {
    animation: fcolor 100ms ease 30ms;
}

ul:nth-child(3) {
    animation: fcolor 100ms ease 60ms;
}

...

又名,硬编码值,不是我要求的,我会否决这样的答案。

最佳答案

不,您不能仅使用 CSS 来做到这一点(至少现在不能)。


作为一种非 javascript 解决方法,我可以看到一个可行的解决方案,在您的服务器端,使用 ASP 或 PHP,创建您的元素是这样的

<ul>
  <li style="animation-delay: 0s;"> ... </li>
  <li style="animation-delay: 10s;"> ... </li>
  <li style="animation-delay: 20s;"> ... </li>
  <li style="animation-delay: 30s;"> ... </li>
  ....
</ul>

然后在 CSS 中设置其余的动画设置

关于html - 使用纯 CSS 为未知数量的元素设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403035/

相关文章:

html - 自动设置div宽度

html - 添加仅用于 bigcommerce 主页的链接标签

html - 如何在同一行中同时写 h1 和 h2?

html - 删除每个输入元素之前的空格 - 由换行符引起

javaScript 有没有更好的方法来制作这个动画?

ios - 在标题部分做与单元格相同的动画

html - HTML anchor 标记中超链接文本的内联换行

html - 容器 div 内的多个 div

javascript - 添加颜色后,简单的基于 jQuery 的 ascii 动画崩溃

ios - 使一个 UIView 跟踪另一个约束的动画