我想知道在JavaScript中使用setTimeOutsetInterval制作动画的正确方法(我的意思是动画的循环部分,在特定时间后循环)吗?

如果这是正确且唯一的方法,绿色袜子(Gsap)和其他JS动画库是否在特定时间使用setTimeOutsetInterval进行动画制作? jQuery中的animate方法如何?

更新

我使用GreenSock Animation Platform (Gsap)进行动画处理,它提供了真正快速且流畅的动画。我只是问了一个问题,以弄清它们如何非常流畅,快速地处理动画?

正如我在问题中提到的那样,有一些函数,例如setTimeOutsetInterval用于处理动画,还有另一个函数名称是requestAnimationFrame(),用于制作没有间隙的动画,这与timeOut和Interval函数不同。

因此,有了这些定义,快速动画库(例如green sock和velocity.js)如何处理它们的动画?

谢谢 。

最佳答案

我创建了一个手机,其中包含一些有关“光与声”机器的动画。

我使用了setTimeout,但效果不佳。您必须处理一个滞后才能使其顺畅。

相反,我使用requestAnimationFrame()并在JavaScript中处理了FPS(每秒帧数)并执行了动画。您可以依靠requestAnimationFrame来提供所需的性能,其中settimeout或interval会有一些差距。

https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame

不要为动画而烦恼jQuery(除非它非常简单),它很慢,并且在Android上是不可用的。

相反,使用Velocity.js处理其他动画。它像丝绸一样光滑。

Velocity是一个动画引擎,具有与jQuery的$ .animate()相同的API。它可以使用jQuery,也可以不使用jQuery。它的速度非常快,并且具有彩色动画,变换,循环,缓动,SVG支持和滚动功能。这是结合jQuery和CSS转换的最佳方法。

http://velocityjs.org/

关于javascript - 如何在JavaScript中创建动画,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42331747/

10-12 17:14