2011-10-04 95 views
1

我正在使用jQuery Accordion,我希望每個部分能夠根據內部內容動態調整大小。所以我將.ui-accordion-content-active的樣式設置爲'height:auto'。這在一個特定部分是活動的情況下工作;它會正確調整大小以容納其中的內容。jQuery Accordion'height:auto'會導致動畫故障

但是,當選擇Accordion的不同部分時,height屬性似乎會影響動畫。它看起來像開始滑動,但自動高度接管,並且這兩個部分在短暫的時間內完全打開,最後,前面的活動部分關閉。

看起來應該有一個正確的方法來強制Accordion內容div動態調整大小,而不會影響動畫。我會很感激任何提示,謝謝!

回答

0

您是否檢出了jQuery UI網站上的no-auto-height演示的標記? 它似乎正是你所要求的。

http://jqueryui.com/demos/accordion/#no-auto-height

+0

我試過了;它起初可以工作,但如果Accordion div內的內容變得更長(例如,手風琴div包含可擴展的文件層次結構),它將不會動態調整大小。我可以使用accordionchange事件來切換'height:auto'。 – mtk4000

+0

那麼你在手風琴裏面追加標記嗎?也許您需要在標記添加後重新初始化手風琴以獲得正確的高度。或者在手風琴中有展示/隱藏功能?在這種情況下,您可能需要一個函數來獲取內容的高度並將其應用於手風琴部分的高度。 – Craig

+0

有趣的是,我發現將fillSpace設置爲false可以修復我的問題。我想fillSpace不僅會使Accordion填充其父母的高度,還會將其限制在這個高度。隨着fillSpace關閉,可以隨着新內容附加到內部div而自由擴展。 – mtk4000

3

在腳本標籤,寫如下的代碼。

$(function() { 
$("#accordion").accordion({ 
    heightStyle: "content" 
    autoHeight: false 
}); 
}); 

:) -