2011-10-12 26 views
2

任何人都可以告訴我,如果(以及如何)jQuery確定使用內置效果函數(如slideDown())動畫的元素的最終大小?確定jQuery效果之前元素包裝的最終大小(例如,slideDown)

舉一個實際的例子http://jsfiddle.net/GgCLa/

CSS:

#wrapper { display: block; } 

#wrapper p { 
    display: none; 
} 

#wrapper p:first-child { 
    display: block; 
} 

HTML:

<div id="wrapper"> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
     Curabitur et quam urna, ultrices commodo odio.</p> 
    <p>Nulla at tellus augue, varius dignissim nunc. Donec mattis 
     est quis sem iaculis scelerisque. .</p> 
</div> 
<input type="button" name="button" id="button" value="Clickey" /> 

JAVASCRIPT:

$(document).ready(function() { 
    $("input").toggle(
     function() { $("#wrapper p:last").slideDown("fast"); }, 
     function() { $("#wrapper p:last").slideUp("fast"); } 
    ); 
}); 

有沒有辦法來determ的在動畫完成之前封裝器的最終高度?

回答

2

解決了安東尼傑克的幫助下的問題。爲了讓動畫被觸發之前包裝的最終大小,需要包含在包裝中的所有元素的高度概括,像這樣:

var calcHgt=0; 
$("#wrapper *").each(function() { 
    calcHgt+=$(this).height(); 
}); 

更新小提琴:http://jsfiddle.net/GgCLa/4/

+0

啊哈,很高興你明白了。我現在意識到你想要整個包裝的高度。出於某種原因(不知道爲什麼給出這個標題)我以爲你只想要隱藏的元素。 –

相關問題