jQuery animate() - 调用非常慢

时间:2012-09-04 10:10:52

标签: javascript jquery performance animation jquery-animate

我在单页面Web应用程序中使用jQuery,现在需要将单个DIV的高度从固定值设置为另一个固定值(从~50px到75px)。

我知道经历了可怕的性能问题,令人惊讶的是没有考虑动画本身,而是实际调用animate() - 方法。

window.time = {};
time.start = new Date().getTime();

$('div').animate({height: '25px'}, 500);

time.end = new Date().getTime();

运行此片段,页面上所有DIV的动画再次流畅,但

time.end - time.start = 190

因此动画的初始化需要大约190ms

当然,这个响应时间是无法解决的。

你们中有些人曾经遇到过这样的问题并有想法/解决方案吗?

提前致谢!

利奥

2 个答案:

答案 0 :(得分:0)

我从未将此类通话的表现视为特别糟糕,但它会随着你明显动画的div数量而扩展,也许这就是你的问题。

如果您只想继续使用不依赖于动画的其他内容,请使用setTimeout(function() { ... }, 0)单独运行,完成您正在做的任何事情,并且它将会完成从您离开的函数返回时执行。

答案 1 :(得分:0)

对于每个div都将完成一些工作(设置开始和结束值,设置间隔,计算步长增量等)。所以持续时间取决于div的数量,它与它成线性比例,我没有看到使用jquery改进它的一些合法方法。

相关问题