如何在jQuery中为每个动画设置不同的帧速率

问题描述:

我知道帧速率在jQuery中可以通过设置jQuery.fx.interval。 但是,它适用于所有 jQuery的内部动画功能,如slideDownfadeInanimate如何在jQuery中为每个动画设置不同的帧速率

我想为每个animate()帧速率,我怎么可能archieve呢?

API documentation page

因为jQuery使用一个全球性的间隔,没有动画应该运行或所有的动画应该停止这个属性生效的变化。

注意:jQuery.fx.interval当前对支持requestAnimationFrame属性的浏览器(例如Google Chrome 11)没有影响。此行为在未来发行版中可能会有所更改。

我从这个,你不能设置帧率为个人animate电话,除非你愿意没有动画,直到一个已经完成,即使如此,你不能保证的行为。单独离开设置可能是最好的。

+0

因此,澄清,jQuery使用这样的:'window.setInterval(incrementAllAnimations,jQuery.fx.interval)'所以它是不可能改变它。 –

+0

@NathanMacInnes [是的,差不多。](https://github.com/jquery/jquery/blob/master/src/effects.js#L457) – lonesomeday

您可以使用fx.interval来更改此设置。就像这样:

jQuery.fx.interval = 100; 

$("input").click(function(){ 
    $("div").toggle(3000); 
}); 

虽然在文档中说:

jQuery.fx.interval目前在支持requestAnimationFrame属性的浏览器,如谷歌没有任何影响11.此行为是受在未来的版本中进行更改。

+0

我已经在我的帖子中说过了。我想设置“每动画”帧频。这个答案与这个问题无关。 – steveyang

+0

但是,如果您在调用特定的动画之前直接进行更改,则可以执行此操作。但是,如果您有多个动画同时运行,我认为您运气不佳。 –