2011-08-31 146 views
0

如何獲得animate()動態元素的高度?jquery animate:如何動態獲取動畫元素的高度?

這是我的代碼來揭示元素中更隱藏的文字。問題在於我必須將動畫高度(例如300px)修復爲固定數字,文本會不斷變化,所以我不知道它會持續多長時間。

$('.toggle-slide').click(function() { 

     var object = $(this); 
     var object_target = $('.text-about'); 
     var target_height = object_target.height(); 

    object_target.animate({ 
     height:'300px' 
     }, 1500); 


     return false; 
}); 

所以我覺得元素的實際高度應該是動態獲得那麼我可以將此參數傳遞到animate()

但是我怎麼能得到這個動態高度?

或者你有其他更好的點子?

這是我的測試link

+0

除非元素在調用時被隱藏,否則您可以使用[.height]()獲得jQuery元素的高度。那麼你必須對此有點偷偷摸摸。當您嘗試獲取其高度時,動態元素是否隱藏? – Chad

+0

是啊,它是從開始隱藏,你可以從這裏看到 - http://jsfiddle.net/unLBu/2/ – laukok

回答

1
$('.toggle-slide').click(function() { 

     var object = $(this); 
     var object_target = $('.text-about'); 
     var target_height = object_target.height('100%').height(); 

     object_target.height('200px'); 

     object_target.animate({ 
     height: target_height + 'px' 
     }, 1500); 


     return false; 
}); 

我得到了它首先使這一切可見的,然後採取高度,然後放回至200像素和動畫:)

也許在較慢的機器閃爍,但它的一個想法,工作

+0

謝謝了! :-) – laukok