Gsap timelineMax交错完成后下一步开始

Gsap timelineMax交错完成后下一步开始,gsap,Gsap,您好,我正在尝试使用timelineMax中的Staffeto 我的代码是 this.tl.staggerTo(this.chartProxies,1,{ repeat:1, yoyo:true, deviation:5, },3) chartProxies是我的数组,它具有偏差属性 数组长度为5 我想做的是:更改数组中某个元素的偏差,然后在前一个元素的yoyo完成后开始下一个 据我所知,每个元素的持续时间是1,因为yoyo是真的,所以每

您好,我正在尝试使用timelineMax中的Staffeto 我的代码是

this.tl.staggerTo(this.chartProxies,1,{
        repeat:1,
        yoyo:true,
        deviation:5,
    },3)
chartProxies是我的数组,它具有偏差属性 数组长度为5 我想做的是:更改数组中某个元素的偏差,然后在前一个元素的yoyo完成后开始下一个

据我所知,每个元素的持续时间是1,因为yoyo是真的,所以每个元素的开始和结束都需要2秒 当我在末尾写入3秒延迟时,时间线在yoyo完成后等待3秒,但如果我将其更改为1秒,则下一个时间线将在当前完成之前开始 我该怎么办
谢谢

像您这样的
3
交错值是而不是3秒的延迟。它是交错:{each:3}的简写,这意味着它将在前一个动画启动3秒后启动每个动画

你是对的,因为你的持续时间为1,重复时间为1,所以每次完成都需要2秒,这意味着在下一个动画开始之前将有1秒的时间

但是当你将
3
更改为
1
时,它会在另一个结束之前开始,因为它就是这样做的

如果您希望它作为延迟而不是它的行为,您可以使用以下方法自己计算它:

const dur = 1;
const delay = 1;
this.tl.staggerTo(this.chartProxies, dur, {
  repeat:1,
  yoyo:true,
  deviation:5,
}, dur * 2 + delay)
顺便说一句,你会很快得到帮助。我们很想有你在身边


p.p.S.我建议使用。有很多改进

u写下“在下一个动画开始之前,将有1秒的空白”,但3等待3秒而不是1秒。若我输入的交错值大于持续时间值,它将在完成后等待交错时间。若否,则说明您误解了。交错值3是从上一个动画的开始,而不是结束,正如我在回答中所说的。由于您有一个
repeat
1
,并且
持续时间是
1
,因此在时间轴中,它将播放第一秒钟的动画,向后播放第二秒钟,等待一秒钟,然后开始下一个动画。如果你提供一个代码/问题的最小示例,我认为这会对你的理解有很大帮助。