【发布时间】:2014-11-24 22:43:41
【问题描述】:
我在 Javascript 中遇到了 .animate() 的问题。我正在使用它来自动滚动到正在工作的 div 中的一个元素。我遇到的问题是,几毫秒后,滚动会冻结一秒钟左右,然后在应该已经动画到的那个点继续,然后继续动画没有任何问题。
可滚动的 div 包含大约 36 个宽度为 75 px 的 div,背景是动态生成的 SVG 图。为我使用的 div 设置动画
parent.stop(true, false).animate({
scrollLeft: offsetToLeft
}, 50*Math.abs(elementsToSkipp), function (element, index) {
//Show highlight the element and refresh data
return false;
}.bind(this, forecastElement[0], index));
return false; 和 .stop(true, false) 来自 Stackoverflow,但它并没有真正解决我的问题。非常感谢您的帮助。
编辑: 我只在移动设备(iOS、Android)上遇到过这种延迟,在台式电脑上没有这种延迟。
谢谢,
大卫
【问题讨论】:
-
您是否同时在做其他事情? Ajax 调用返回数据,改变 DOM?
-
能否提供更多代码来重现问题?
-
@Ludovic 抱歉,我无法显示更多代码,因为它处于保密协议之下。
-
@epascarello 不,不是。在动画之前我正在计算
offsetToLeft,仅此而已。然后当涉及到动画部分时,我可以看到一个滞后。您过去是否遇到过类似的问题? -
您可能想调查Velocity.js。它或多或少是 jQuery 动画代码的替代品,而且通常表现得更好。
标签: javascript jquery css animation