有谁知道为什么这个非常简单的jquery动画在Chrome等浏览器中完美运行,似乎在Firefox 7.0.1中被窃听? 这是动画的a link。 如果你在Firefox中尝试它,你会发现动画有时会冻结然后重新启动。 正如您所看到的,代码非常简单,只有一个动画,没有图像和内联CSS。
HTML:
<div id="content" style="position: relative;width: 500px;height: 500px;overflow: hidden;">
<ul id="slider" style="position: absolute;top:0;left:0;">
<li style="background-color: red;height: 500px;width: 500px;list-style-type: none;"></li>
<li style="background-color: green;height: 500px;width: 500px;list-style-type: none;"></li>
<li style="background-color: blue;height: 500px;width: 500px;list-style-type: none;"></li>
</ul>
</div>
JS:
$(document).ready(function () {
to_move=$('#slider');
to_move.animate({
top: "-1000px"
}, 15000,'linear');
});
感谢您的帮助。
答案 0 :(得分:2)
你所看到的是Firefox的垃圾收集器每隔一段时间就开始发挥作用。
如果您不熟悉GC的背景:作为JavaScript 程序运行,它创建对象,数组,字符串和函数, 占用记忆。为了不用尽所有的记忆和 崩溃,JS引擎必须能够自动发现哪个 对象不再使用(因此它们现在是“垃圾”)并且是免费的 他们了这个“自动内存回收”子系统被称为 垃圾收集器,或GC。)
暂停的原因是SpiderMonkey使用的是旧式学校 停止世界的标记和扫描收集器
计划对Firefox的GC进行大幅改进但尚未实施 - 请参阅该链接以获取更多信息。
答案 1 :(得分:0)
我不太了解jquery的内部工作原理,但我认为它正在为该div使用resize事件。 Firefox处理调整大小的事件很糟糕,我不确定是否有办法解决它。以下是一些更多信息:http://www.quirksmode.org/dom/events/resize.html