2012-01-27 163 views
0

我有一些酒吧充滿了高度%,但當頁面加載時,我想所有酒吧填滿,然後減少到0.我知道如何填補它與一個循環:使用jquery動畫元素的高度

for(i = 1; i <= 100; i++) 

,但有它回來下來

for(i = 100; i == 100; i--) 

我只是不知道如何把它們放在一起,使變量i去100則下降回落到0?

回答

6

您正在尋找:

for(i = 100; i >= 0; i--) 

但是,你可能只是這樣做slideUp

$('someElement') 
    .hide() 
    .slideDown(500, function() { 
     $(this).slideUp(500); 
    }); 

像你想的上面將動畫的元素。該代碼相當於大致有以下幾種,如果你甚至想要做更復雜的animate動畫:

$('someElement') 
    .hide() 
    .animate({ height: '100%' }, 500, function() { 
     $(this).animate({ height: 0 }, 500); 
    }); 

更新:這裏是一個jsFiddle示範。

0

我認爲jQuery animate是你在找什麼。結果是類似於this

+0

爲什麼downvote? – 2012-01-27 19:36:41

0

第二個應該是:

for(i = 100; i >= 0; i--) 
0

如何:

for(i = 100; i >= 0; i--) 
0

如果您想要進行動畫處理的對象,然後我想你想的jQuery的.animate()函數的高度:

$('.bar-elements').animate({ height : '100%' }, 1500, function() { 
    $(this).animate({ height : 0 }, 1500); 
}); 

或者您也可以使用slideUp/slideDown個函數已經這樣做了:

$('.bar-elements').hide().slideDown(1500, function() { 
    $(this).slideUp(1500); 
}); 

文檔爲.animate()http://api.jquery.com/animate

Google文檔.slideUp()http://api.jquery.com/slideup

1

你可以做到這一切在一個循環:

for(var i = 0; i <= 200; i++) { 
    var height = (i <=100) ? i : 200 - i; 
} 

變量height將從0到100,然後回到0.

+0

+1這是光滑的 – 2012-01-27 19:27:50