我在单页面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
当然,这个响应时间是无法解决的。
你们中有些人曾经遇到过这样的问题并有想法/解决方案吗?
提前致谢!
利奥
答案 0 :(得分:0)
我从未将此类通话的表现视为特别糟糕,但它会随着你明显动画的div数量而扩展,也许这就是你的问题。
如果您只想继续使用不依赖于动画的其他内容,请使用setTimeout(function() { ... }, 0)
单独运行,完成您正在做的任何事情,并且它将会完成从您离开的函数返回时执行。
答案 1 :(得分:0)
对于每个div都将完成一些工作(设置开始和结束值,设置间隔,计算步长增量等)。所以持续时间取决于div的数量,它与它成线性比例,我没有看到使用jquery改进它的一些合法方法。