2012-05-02 142 views
0

所以我有一個web應用程序,其中每個面板是480x300(-20px的狀態欄)和兩個導航按鈕向左或向右滾動。停止.animate()當它到達最後div

現在一切都很好,除非繼續滾動顯示最大面板,否則它會繼續。

我想知道是否有可能在它到達最後一個面板後停止Jquery .animate()。

http://jsfiddle.net/gS33Y/

+0

如果保證金不等於0,您是否可以不添加支票到您的點擊動畫中進行動畫製作?只有其他方式,如果它不等於lis的數量*然而您每次都要動畫多少? – noShowP

+0

我真的很想感謝每個人。我認爲雖然(愚蠢,無可否認)對於5個面板應用程序,我只需在面板上添加下一個和上一個按鈕。 在開發較長的情況下,我一定會利用它們:] 謝謝所有。男人,我覺得自己像一個菜鳥 - .- – Ahhhhhhhhhhhhhdfgbv

回答

1

你好另一個演示http://jsfiddle.net/qpHSw/http://jsfiddle.net/yEsDQ/http://jsfiddle.net/yEsDQ/show

此示例動態計數貴麗在UL和調整根據動畫。

代碼

var cur = 1; 
var max = $(".scroll-content ul").children("li").length; 

$("nav.back").click(function(){ 

    if (cur+1 > max) return; 
    cur++; 

    $("#panel").animate({ 
     marginLeft: "-=500px", 
    }, 1000); 

}); 

$("nav.forward").click(function(){ 
    if (cur-1 < 1) return; 
    cur--; 
    $("#panel").animate({ 
     marginLeft: "+=500px", 
    }, 1000); 

});​ 
+0

而我給你最簡單的應用程序! – Ahhhhhhhhhhhhhdfgbv

+0

Hiya @ user1086990很高興幫助,:)乾杯,我已經刪除了這個警告:http://jsfiddle.net/qpHSw/以防萬一,有一個好的,歡呼! –

0

您可以限制的x座標位置有一定的值,如果它是最後一個面板。

0

您可以使用#panel元素上的data-x屬性來計算面板的數量,並跟蹤顯示哪個面板來限制移動。另外,您應該將幻燈片邊距增加500px(460寬度+ 20px邊距+ 20px填充)。

試試這個:

var $panel = $("#panel") 
$panel.data("slideCount", $("#panel li").length).data("currentSlide", 1); 

$("nav.back").click(function() { 
    if ($panel.data("currentSlide") < $panel.data("slideCount")) { 
     $("#panel").animate({ 
      marginLeft: "-=500px", 
     }, 1000); 
     $panel.data().currentSlide++; 
    } 
}); 

$("nav.forward").click(function(){ 
    if ($panel.data("currentSlide") > 1) { 
     $("#panel").animate({ 
      marginLeft: "+=500px", 
     }, 1000); 
     $panel.data().currentSlide--; 
    } 
}); 

Example fiddle

0

反正是有檢測時,窗口寬度幾近結束,並終止marginLeft在幻燈片5月底離開右邊沒有空格?