2012-04-05 31 views
1

嗨,給大家這是我第一次問stackoverflow
我創建了一個簡單的代碼來管理菜單。這是代碼。
http://jsfiddle.net/corvallo/97x89/5/JQuery:不必要的動畫放緩

如果我點擊「GESTIONE新聞」所有的菜單元素將滑塊向左與不同的延遲 和圖像(即上的jsfiddle你無法看到)與文本「Articoli」將出現。
所以我點擊圖像和文字「articoli」將fadeOut和菜單元素將重新出現延遲與以前相同的位置。
所以問題是,如果我嘗試4-5次第一個動畫(即菜單元素的左側滑動)會減速,如果再試一次動畫會變得越來越慢。

我不認爲問題是在delay()函數中,但在$ .each()中,也許我錯了。
有人可以幫助我。
預先感謝您。

回答

1

這些動畫似乎在他們明顯完成工作之後似乎仍有一段時間運行。使用以下方法來看看當他們停止在Firebug或Chrome:

$(this).animate({"marginLeft":"0px"},"slow", function(){console.log("anim stopped");}); 

我不知道爲什麼他們仍然在運行,但你可以運行新的動畫像在此之前阻止他們:

$(this).stop().animate({"marginLeft":"0px"},"slow"); 

這似乎解決了您正在經歷的放緩問題。

+0

謝謝你的回答,我已經嘗試使用stop()函數,當我嘗試這個時,減速仍然存在。現在我重試停止和減速不存在。然而原諒我的英語不好,謝謝 – corvallo 2012-04-05 23:52:31

0

將菜單放在div中。不是對每個元素進行foreach,而是對主div進行動畫處理。

延遲不應該引起你的問題,因爲所有的事情都是等待開始動畫的時間安排,但是讓那麼多動畫同時啓動幾個內部計時器而不是一個,這可能導致打嗝。