Javascript ifinite循环(Greensock)

Javascript ifinite循环(Greensock),javascript,animation,svg,gsap,Javascript,Animation,Svg,Gsap,我想知道如何在GreenSock JavaScript库中制作无限动画。我知道JavaScript一次只能执行一个操作,但我希望一些SVG图像能够不停地移动。对我来说,它看起来像是无限循环,但我知道我的想法是错误的。我想知道这种东西是如何运作的,但我找不到好的资源 Greensock动画平台有两个类,允许无限循环,TweenMax和TimelineMax 如果希望所有元素在无休止的循环中同时设置动画,可以使用TweenMax并将元素作为数组传递: 现在,如果要创建更复杂的序列,应使用Timel

我想知道如何在GreenSock JavaScript库中制作无限动画。我知道JavaScript一次只能执行一个操作,但我希望一些SVG图像能够不停地移动。对我来说,它看起来像是无限循环,但我知道我的想法是错误的。我想知道这种东西是如何运作的,但我找不到好的资源

Greensock动画平台有两个类,允许无限循环,TweenMax和TimelineMax

如果希望所有元素在无休止的循环中同时设置动画,可以使用TweenMax并将元素作为数组传递:

现在,如果要创建更复杂的序列,应使用TimelineMax:

现在,如果希望重叠,可以使用position参数创建外观更好的动画:

还可以使用交错方法创建具有相同特性的重叠动画:


最后值得注意的是,交错方法将为所有元素设置相同属性的动画,同时使用带有位置参数的timeline类允许您为每个对象创建不同的动画。

您不需要使用timeline。只要你使用TweenMax,你就可以做到

TweenMax.to(mc,1,{x:100,重复:-1})

如果你想让这两个孩子反反复复,你可以这样做


TweenMax.to(mc,1,{x:100,重复:-1,yoyo:true})

签出尝试使用。相关:您已标记了GreenSock并在问题标题中指示GreenSock。GreenSock的文档说明:“获取或设置时间线在第一次迭代后应该重复的次数……要无限重复,请使用-1。”这是一个很好的答案。我只想补充一点,如果您不正确地使用repeat,您可能会出现内存泄漏或其他js问题。确保您的代码足够可靠,可以处理异常。也就是说,最好为无限循环使用css动画Greensock在GC方面非常有效,每个实例只创建一次。我已经使用repeat:-1制作并查看了许多示例,因此不记得有任何内存泄漏。是否愿意共享导致内存泄漏的代码?以便将其作为问题报告给greensock,他们可以查看一下。
const myObjects = [...];
const t = TweenMax.to(myObjects, 1, {rotation:360, ease:Linear.easeNone, repeat:-1});
// this creates a seamless rotation of all the objects at the same time
const tl = new TimelineMax({repeat:-1});
// then add the instances to the timeline
tl
  .to(object1, 1, {rotation:360, ease:Linear.easeNone})
  .to(object2, 1, {x:200});
  // and so on