2011-08-17 64 views
1

My sitejavascript:如果jQuery或CSS動畫,Raphael會停止運行嗎?

jQuery Animation (`comsat.js`: `showPlayerActionView()`): 

if (container == cs_characterSliderPlayerOne){ 
    container.show("slide", {direction: "left"}, 500); 
} else if (container == cs_characterSliderPlayerTwo){ 
    container.show("slide", {direction: "right"}, 500); 
} 

拉斐爾動畫:

this.hover(function(event) { 
        cs_playerList[i].animate({ 
         fill: HEX_HOVER_COLOR 
        }, 500); 
       }, function(event) { 
        cs_playerList[i].animate({ 
         fill: DEFAULT_HEX_COLOR 
        }, 500) 
       }); 

所以,每個動畫似乎完美地運行平穩時,另一個將被禁用,但兩者都使能時,他們似乎打eatchother用於呈現最多的次數,導致減速。有沒有辦法解決這個問題?要麼通過告訴動畫,他們不需要每秒200幀地渲染(猜測)並共享資源,以使其他東西看起來平滑?

當我使用任何CSS3過渡動畫(網站上未顯示)時,會發生同樣的減速。也許多線程會有所幫助?如何在JavaScript中做到這一點?

+0

我們如何重現這個在您的網站?我似乎無法在那裏做任何事情。 – Prisoner 2011-08-17 11:55:54

回答

1

Raphael 2於2011年10月發佈,並對動畫代碼進行了一些更改:動畫現在使用新的瀏覽器API「requestAnimationFrame」運行,舊版瀏覽器的回退速度約爲60FPS。

jQuery在1.6系列早期採用了requestAnimationFrame,但當各種jQuery用戶報告他們的動畫隊列正在備份並導致可怕的追趕動畫時,再次將其刪除,因爲窗口丟失並重新聚焦。

的動畫應該拉斐爾2運行更平穩,但也許不是很順利,因爲他們想,如果jQuery的還使用requestAnimationFrame