我正在處理一個簡單的幻燈片放映模式,使用下一個和上一個按鈕進行導航。再次激活之前點擊需要完成
我設置這是具有其與7個滑動的容器都具有相同的尺寸與容器中,用與左側的方式被定位爲100%,200%,等等
的按鈕動畫顯示marginLeft轉到下一張或上一張幻燈片。
$('#slideArrowRight').click(function(){
var allSlides = $(this).siblings('.slideContainer');
var slideWidth = allSlides.width();
var maxSlides = $('.slideContainer').length - 1;
var maxWidth = maxSlides * slideWidth;
var negative = 0 - maxWidth;
if (parseFloat($(allSlides).css('marginLeft')) <= negative) {}
else { $(allSlides).animate({marginLeft: "-=" + (slideWidth) + "px"}, {duration:200}); }
});
我使用if語句來檢查是否達到marginLeft的最高金額,因此它不能走得更遠。
這就是我想出的。並覺得什麼東西實際工作xD (很新的JavaScript和jQuery所以是的我退出,如果東西開始工作)
但是,如果我點擊按鈕真的很快,它獲得了最後一張幻燈片作爲函數堆棧隊列。並且點擊時未達到最大marginLeft。
所以我的問題是我如何得到它,以便該功能不能運行,除非功能完成?
我嘗試了.finish()但立即取消了動畫,而不是我正在尋找的東西。我主要是想讓它不能執行,除非函數不在隊列中。
我有一個演示,聽起來你的需求哥們一樣。 [** Click here **](http://anthonypagaycarbon.iblogger.org/),如果是的話,我會把代碼給你。只要懸停橫幅,你會明白我的意思。 – 2015-02-05 15:52:18
它是相同的想法,但與下一個和上一個按鈕,而不是縮略圖 – 2015-02-05 15:54:28
你想在第一次完成之前延遲下一個「點擊」事件嗎?或者當你第一次正在執行的時候你想取消下一個「點擊」事件嗎? – Kasyx 2015-02-05 16:05:18