2013-03-28 141 views
1

我有一系列元素,我希望通過點擊一個接一個地進行動畫。第一個動畫,但下一個不會。我在這裏錯過了什麼?如何在點擊時爲動畫製作一系列動畫?

DEMO

$(document).ready(function() { 
    $('.button').click(function() { 
     $('.slide').next().animate({"top" : "5000"}, 500); 
    }) 
}); 
+0

$下一個()總是選擇了( '幻燈片')。同樣的'你'你需要一種方式來跟蹤哪一個當前可見。 – dezman

+0

我並不確切知道你要做什麼,但這可能有所幫助:http://jsfiddle.net/watson/xC95V/18/ – dezman

回答

1

你可以試試這個 - DEMO

$(document).ready(function(){ 
    var i = $(".slide").length; 

    $('.button').click(function() { 
     i--; 
     $('.slide').eq(i).animate({"top" : "5000"}, 500); 
    }) 
}); 
+0

謝謝!我對.length和.eq進行了一些研究,我可以理解你的解決方案。我唯一的問題就是「我 - 」的目的。這件作品是做什麼的? – user2221628

+0

它減少了'.slide'元素在每次點擊時隱藏的索引 - 3,2,1,0 –

0

你的選擇是不是做你的想法。

$('.slide').next().animate({"top" : "5000"}, 500); 

$('.slide')這是選擇離開課程幻燈片的所有元素。這意味着它正在選擇「滑動藍色」,「滑動紅色」,「滑動黃色」和「滑動黑色」。

$('.slide').next()這需要您選擇的所有幻燈片的下一個兄弟(如果有的話),即「幻燈片藍色」,「幻燈片紅色」和「幻燈片黃色」。

您的動畫效果是藍色,紅色和黃色,頂部只剩下黑色。

後續按鈕不會執行任何操作,因爲黑色沒有左邊的兄弟。

0

這樣做:

添加了類所有元素(只是將它們標記爲),那麼使用此代碼:

$(document).ready(function(){ 



    $('.button').click(function(){ 
     var slide = $('.slide.up').last(); 
     slide.toggleClass('up'); 
     slide.animate({"top" : "5000"}, 500); 
    }) 

}); 

測試,並預計

它適用於您的jsfiddle