css动画多元素依次播放方法_使用不同delay设置顺序动画-css教程

animation-delay通过错开各元素动画启动时机实现依次播放,如0s、0.2s、0.4s;需避免display/visibility干扰,推荐CSS变量或:nth-child配合JS动态设置,优先使用transform/opacity保障性能。

用 animation-delay 控制多元素依次播放的原理

多个元素使用同一套 @keyframes 动画时,靠给每个元素设置不同的 animation-delay 值,就能实现“一个接一个”播放的效果。关键不是动画本身有多复杂,而是每个元素的启动时机错开了——比如第一个元素 animation-delay: 0s,第二个 animation-delay: 0.2s,第三个 animation-delay: 0.4s,以此类推。

注意:这个 delay 是相对于元素进入渲染流程(或满足触发条件)的时间点开始计算的。如果元素是静态 HTML,那基本就是页面加载完成、样式计算完毕后立即生效;如果是动态插入的节点,delay 从它被 append 到 DOM 后才开始计时。

实际写法:循环生成 delay 值最稳妥

手动给每个元素写不同 animation-delay 容易出错,尤其元素数量多或后续要增删时。推荐用 CSS 自定义属性 + :nth-child() 或 JS 动态注入。

  • 纯 CSS 方案(适合固定结构):
    div.item {
      animation: fade-in 0.3s ease-out;
    }
    div.item:nth-child(1) { animation-delay: 0s; }
    div.item:nth-child(2) { animation-delay: 0.15s; }
    div.item:nth-child(3) { animation-delay: 0.3s; }
    div.item:nth-child(4) { animation-delay: 0.45s; }
  • 更灵活的 CSS 变量方案(需配合 JS 初始化一次):
    div.item {
      --delay: 0s;
      animation: slide-up 0.4s cubic-bezier(0.2, 0.8, 0.4, 1) var(--delay);
    }

    然后用 JS 给每个 div.item 设置 style.setProperty('--delay', `${i * 0.15}s`)

  • 避免直接用 transition-delay 替代——它只对属性变化生效,不适用于完整动画周期控制

常见翻车点:动画重播、父容器 visibility / display 干扰

即使设置了 animation-delay,也可能出现“全卡住不动”或“突然一起播”,多数是因为父级容器用了 visibility: hidden 或 display: none 切换状态。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » css动画多元素依次播放方法_使用不同delay设置顺序动画-css教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996255+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996255+
  • 本周更新: 0+
  • 最后更新: 2026-03-16