You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anime.js Timeline动画问题:左右字母无法同步展示

解决Anime.js Timeline中两个动画无法同步的问题

问题原因

你当前的代码通过两个.add()方法依次添加动画,Anime.js Timeline默认会按添加顺序执行动画。即便设置了offset: "-=60",也只是让第二个动画在第一个动画结束前60ms启动,并非完全同步。

解决方案

有两种简单方式实现同步播放:

方案1:合并为单个动画对象

把两个目标选择器放在同一个.add()里,通过回调函数为不同元素设置对应位移参数,动画会同时作用于两个元素:

anime
  .timeline()
  .add({
    targets: [".ml5 .letters-left", ".ml5 .letters-right"],
    opacity: [0, 1],
    // 根据元素类名动态返回位移方向
    translateX: (el) => el.classList.contains('letters-left') ? ["-100%", 0] : ["100%", 0],
    easing: "easeOutExpo",
    duration: 600
  });

方案2:设置第二个动画的offset为0

给第二个动画的offset设为0,表示从Timeline的起始点开始执行,和第一个动画同步启动:

anime
  .timeline()
  .add({
    targets: ".ml5 .letters-left",
    opacity: [0, 1],
    translateX: ["-100%", 0],
    easing: "easeOutExpo",
    duration: 600
  })
  .add({
    targets: ".ml5 .letters-right",
    opacity: [0, 1],
    translateX: ["100%", 0],
    easing: "easeOutExpo",
    duration: 600,
    offset: 0 // 与第一个动画同时启动
  });

内容的提问来源于stack exchange,提问作者Dhruv Tanwani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:25:17