【问题标题】:Jquery animation on Firefox 7.0.1 lagsFirefox 7.0.1 上的 Jquery 动画滞后
【发布时间】:2012-01-03 20:59:48
【问题描述】:

有谁知道为什么这个非常简单的 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');
});

感谢您的帮助。

【问题讨论】:

    标签: jquery firefox animation smooth


    【解决方案1】:

    您看到的是 Firefox 的垃圾收集器每隔一段时间就会启动。

    通过Dave Mandelin's blog:

    如果您不熟悉 GC 的背景知识:作为 JavaScript 程序运行,它创建对象、数组、字符串和函数, 占用内存。为了不耗尽你所有的记忆和 crash,JS引擎必须能够自动发现哪个 对象不再使用(因此它们现在是“垃圾”)并且是免费的 他们起来。这个“自动内存回收”子系统被称为 垃圾收集器或 GC。)

    暂停的原因是 SpiderMonkey 使用了一个老式的 停止世界的标记和清除收集器

    已计划对 Firefox 的 GC 进行大量改进,但尚未实施 - 请参阅该链接了解更多信息。

    【讨论】:

    • 谢谢,有什么 moz webkit 动画可以用来避免这个 GC 问题吗?
    • 你可以看看 [CSS 过渡][1]。我自己并没有在愤怒中使用它们,您需要为旧浏览器提供脚本后备。据我所知,他们会受到 GC 的影响。但是你有它;)[1]:developer.mozilla.org/en/CSS/…
    • 事实上我已经将 Firefox 更新到 8.0.1 版本并且没有延迟!!似乎在最新版本中对 GC 进行了更好的管理。再次感谢您的帮助!!
    【解决方案2】:

    我不太了解 jquery 的内部工作原理,但我认为它正在为该 div 使用 resize 事件。 Firefox 无法很好地处理调整大小事件,我不确定是否有办法修复它。以下是更多信息:http://www.quirksmode.org/dom/events/resize.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 2011-07-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多