1

我正在为我的单页 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

当然,这个响应时间是不可接受的。

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

提前致谢!

狮子座

4

2 回答 2

0

我从来没有遇到过这种调用的性能特别差的情况,但是它显然会随着你正在制作动画的 div 的数量而缩放,也许这就是你的问题。

如果您只想处理不依赖于动画的其他事情,请使用 a 单独运行它setTimeout(function() { ... }, 0),完成您正在做的任何事情,当您从您所在的函数返回时,它将执行。

于 2012-09-04T10:17:11.693 回答
0

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

于 2012-09-04T10:17:57.900 回答