我想知道在JavaScript中使用setTimeOut
或setInterval
制作动画的正确方法(我的意思是动画的循环部分,在特定时间后循环)吗?
如果这是正确且唯一的方法,绿色袜子(Gsap)和其他JS动画库是否在特定时间使用setTimeOut
和setInterval
进行动画制作? jQuery中的animate
方法如何?
更新
我使用GreenSock Animation Platform (Gsap)进行动画处理,它提供了真正快速且流畅的动画。我只是问了一个问题,以弄清它们如何非常流畅,快速地处理动画?
正如我在问题中提到的那样,有一些函数,例如setTimeOut
和setInterval
用于处理动画,还有另一个函数名称是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/