將動畫堆疊在彼此之上,並禁用默認動畫隊列。
$(".thebox")
.animate({height: "toggle"}, {duration: 250, queue:false})
.animate({opacity: "toggle"}, {duration: 500, queue:false}); // Runs twice as slow.
編輯:
由於事件正在使用撥動兩次觸發,我們需要一種不同的方法,來檢測wheter隱藏或顯示框。一個簡單的解決方案將是一個輔助類這樣:
var theBox = $('.thebox');
if (theBox.hasClass('active')) {
// It is active, then fade it out
thebox
.removeClass('active')
.animate({height: 0}, {duration: 250, queue:false})
.animate({opacity: 0}, {duration: 500, queue:false});
} else {
// It is not active, show it
thebox
.addClass('active')
.animate({height: 'auto'}, {duration: 250, queue:false})
.animate({opacity: 1}, {duration: 500, queue:false});
}
值得指出的:該動畫可以使用效果基本show,了slideDown,淡入淡出和動畫,而不是來完成()。還要注意,上面假設只有一個類theBox
的元素。
太棒了!然後,我會很感激這個答案一個很好的綠色檢查! :-) – Eric
@Eric:他無法接受另外10分鐘左右的答案。 –
對不起,這實際上並沒有工作。 。按下切換按鈕後,該盒子會直接再次彈出。 – jmd