2011-11-22 95 views
3

有誰知道爲什麼這個非常簡單的jquery動畫可以在Chrome等瀏覽器中完美工作,並且似乎在Firefox 7.0.1中被竊聽? 這裏是動畫的a link。 如果你在Firefox中試用它,你會看到動畫有時凍結,然後重新啓動。正如你所看到的代碼非常簡單,只有一個動畫,沒有圖像和內聯CSS。Firefox 7.0.1上的jquery動畫延遲

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'); 
}); 

感謝你的幫助。

回答

2

你看到的是Firefox的垃圾回收器每隔一段時間就會踢。

通過Dave Mandelin's blog:什麼GC

背景是,如果你不熟悉的:作爲一個JavaScript 程序運行時,它會創建對象,數組,字符串和功能, 其佔用內存。爲了不用掉所有的內存和崩潰,JS引擎必須能夠自動發現哪些對象不再被使用(因此它們現在是「垃圾」)並且自由地使用它們。這種「自動內存回收」子系統被稱爲 垃圾收集器,或GC)

的原因暫停是SpiderMonkey的使用一個老派的 停止的世界標記 - 清除收集

對Firefox的GC進行了大量改進,但尚未實現 - 請參閱該鏈接瞭解更多信息。

+0

謝謝,是否有任何moz webkit動畫我可以用來避免這個GC問題? –

+0

你可以看看[CSS Transitions] [1]。我自己並沒有在憤怒中使用它們,你需要爲舊版瀏覽器提供腳本回退。而且我知道他們會受到GC的影響。但是你有它;) [1]:https://developer.mozilla.org/en/CSS/CSS_transitions#AutoCompatibilityTable – N3dst4

+0

事實上,我已經更新了Firefox 8.0.1版本,沒有滯後! 似乎GC在最新版本中管理得更好。 再次感謝您的幫助! –