我剛剛在jQuery中創建了一個簡單的,連續的bounce effect,但我覺得代碼不是全部優化的,而是希望改進它。改善這個連續的jQuery動畫
var $square = $("#square");
bounce();
function bounce() {
$square.animate({
top: "+=10"
}, 300, function() {
$square.animate({
top: "-=10"
}, 300, function() {
bounce();
})
});
}
$square.hover(function() {
jQuery.fx.off = true;
}, function() {
jQuery.fx.off = false;
});
所有我所做的基本上是建立,增加了+10到頂部的元素座標的動畫,並作爲一個回調函數,我減去10從頂部座標..
這會產生(幾乎平滑)反彈效果,但我感覺可以改進。
此外,我想停止動畫mouseenter
,並讓它繼續mouseleave
。
stop(true, true)
沒有工作,也沒有dequeue()
所以我使出所有打開動畫效果關閉使用jQuery.fx.off = true
(愚蠢的,不是嗎?)
我會很感激這是如何能夠優化任何反饋。
這是jsFiddle。
編輯:我剛剛意識到,jQuery已經開始拋出too much recursion
錯誤時禁用和重新啓用效果。
由於提前,
馬爾科
我想,通過調用反彈()內本身的回調,在過多的遞歸誤差產生較大的堆棧跟蹤,因此結果。 – softcr 2010-08-31 20:12:40
遞歸太多的問題是遞歸太多。 – 2010-08-31 20:26:25
是@Neil - 爲了理解遞歸,你必須先理解遞歸。 – Marko 2010-08-31 20:59:52