我正在用一些jQuery效果更新我的客戶端的web畫廊。我已經做了一些成功的改變,但是現在我對最後的腳本有問題。一切工作正常,但當你快速點擊開始,動畫打破常規模式,一切都是一團糟。我知道我需要使用stop()函數,但我不能使它工作100%,因爲它應該工作。不知道在哪裏把「.stop()」放在我的jQuery腳本中
$(function() {
$(".gallery_view_switch").toggle(function() {
$(this).html('Switching ...');
$(".sidebar").slideToggle('slow', function() {
$(".single_page").animate({width: 870}, 700),
$('img.gallery').css('margin-left', '5px'),
$('#top').css('margin-right', '-290px'),
$('.gallery_view_switch').html('Show gallery navigation');
});
},function() {
$(this).html('Switching ...');
$('img.gallery').css('margin-left', '12px'),
$(".single_page").animate({width: 550}, 700, function() {
$('#top').css('margin-right', '30px'),
$(".sidebar").slideToggle('slow'),
$('.gallery_view_switch').html('Hide gallery navigation');
});
});
})
所以,我們有一個「上點擊」這裏的行動,側邊欄與畫廊導航上升和內容獲得額外的尺寸和新的CSS屬性的圖像,使畫廊現在有更多更廣泛的觀點。
第二次點擊時,內容獲取原始大小和屬性,側邊欄切換回原始位置。
我在這裏想要做的是停止動畫隊列的額外點擊,並且不允許在所有事情都已準備就緒之前發生新的動畫。
謝謝!
編輯2:
$(function() {
var isExpanding = false;
$(".gallery_view_switch").toggle(function() {
if(!isExpanding) {
$(this).html('Switching ...');
$(".sidebar").slideToggle('slow', function() {
isExpanding = true;
$(".single_page").animate({
width: 870
}, 700),
$('img.gallery').css('margin-left', '5px'),
$('#top').css('margin-right', '-290px'),
$('.gallery_view_switch').html('Show gallery navigation');
isExpanding = false;
});
}
},function() {
if(!isExpanding) {
$(this).html('Switching ...');
$('img.gallery').css('margin-left', '12px'),
$(".single_page").animate({
width: 550
}, 700, function() {
isExpanding = true;
$('#top').css('margin-right', '30px'),
$(".sidebar").stop().slideToggle('slow'),
$('.gallery_view_switch').html('Hide gallery navigation');
isExpanding = false;
});
}
});
})
而另一位編輯,仍然沒有工作...我真的不明白,究竟是什麼我必須在這裏改變,使其工作?我嘗試了很多真正的/錯誤的組合,沒有成功,它以前工作過,有重疊。或者在一些真/假組合中,它被完全鎖定,並且一旦展開就不能返回。
要小心,因爲jQuery的1.9下跌了使用'切換的() '功能,如果我沒有弄錯..(http://jquery.com/upgrade-guide/1.9/#toggle-function-function-removed) – 2013-02-08 20:26:04
我不認爲'停止()'是你'重新尋找。它不會阻止點擊,它只會清除動畫隊列(並且可以選擇跳轉到隊列末尾)。下面,Soyuka有正確的想法。 – showdev 2013-02-08 20:28:33
看到我的編輯,但它會更容易與一個JS小提琴,我不明白你的方式做到這一點... – soyuka 2013-02-08 21:25:06