2012-02-12 45 views
0

從:.animate()隊列選項解釋

隊列:一個布爾指示是否置於效果隊列中的動畫。如果爲false,則動畫將立即開始。從jQuery 1.7開始,隊列選項也可以接受一個字符串,在這種情況下,動畫被添加到由該字符串表示的隊列中。

我希望添加到對象的動畫應該在上一次動畫結束時開始。 從jquery文檔看來,爲了實現這一點,動畫必須添加到隊列中。如果我傳遞{queue:true},則將動畫添加到常規隊列中,而在jQuery 1.7中,我可以傳遞{queue:「queue_foo」}以將動畫添加到特定隊列。我在我的代碼中寫了這個,但是動畫沒有執行。

showedSlide.animate({ 
     left: -showedSlide.outerWidth() 
    }, {queue: "left"}); 

回答

1

當新行爲排隊時,默認隊列('fx')立即出列,自定義隊列不會排隊。你必須自己dequeue()

但是,我懷疑你嘗試了默認隊列,它沒有工作,所以你轉向自定義隊列,因爲除非你指定queue: false動畫確實排隊,下一個動畫等待前一個完成後才能開始。但是這僅適用於單個元素上的動畫。如果您在2個不同的元素上有2個動畫,它們將並行執行。

您的showedSlide是否總是指向相同的元素或者它是否改變?

+0

showsSlide與hidedSlide元素交換。我沒有指定'queue:false',並且動畫不等待最後一個動畫。 – Clynamen 2012-02-12 22:06:08

+0

其實我意識到我是在動畫仍然執行時更改左側屬性時中斷動畫的人。 – Clynamen 2012-02-12 22:17:25