2013-04-30 26 views
3

我只是玩jQueryUI第一次,我很興奮,我可以用它做什麼。不過,由於我在頁面上使用了框尺寸:邊框,因此我似乎很快遇到了問題。jQuery UI手風琴和框大小:邊框

舉例來說,如果我在頁面上這個基本HTML(手風琴標籤是我真正的頁面更加豐滿內的文本,這只是用於演示目的):

<div id='accordion'> 
<h3>Header 1</h3> 
<div>This is <a href="#">paragraph one</a>.</div> 
<h3>Header 2</h3> 
<div>This is <a href="#">paragraph two</a>.</div>    
<h3>Header 3</h3> 
<div>This is paragraph three.</div> 
</div> 

我可以把它與jQuery合作成手風琴:$('#accordion').accordion()

但是,如果箱尺寸設定爲邊界框:

* { 
-moz-box-sizing: border-box; 
-webkit-box-sizing: border-box; 
box-sizing: border-box; 

}

然後有一個非常不愉快「啪」每當我打開手風琴節一上來(在最後)。如果我刪除了盒子大小設置(不是可能的永久解決方案),那麼「snap」會消失。

真的可以這樣,我不能使用jQueryUI手風琴,因爲我已經設置框大小爲邊框?我想我可以修改他們的代碼來使用盒子大小......但顯然我更願意避免這種情況(部分原因是我沒有足夠的能力來做到這一點)。

我很驚訝地發現這個問題之前沒有被問到......所以我猜這是一個痛苦的明顯解決方案,我只是不知道。

謝謝!

+0

請參閱我對以下dfsq的回覆。這些問題似乎與heightStyle中的'auto'選項有關:(1)box-sizing:border-box不適用於'auto'; (2)設置父div的寬度也不適用於'auto'! – EleventyOne 2013-04-30 20:26:41

+0

Bug在jqueryui.com上創建:http://bugs.jqueryui.com/ticket/9264 – EleventyOne 2013-04-30 20:44:02

回答

1

嘗試使用heightStyle選項:

$('#accordion').accordion({ 
    heightStyle: 'content' 
}); 

http://jsfiddle.net/HNp5r/

我不知道爲什麼它雖然解決了這個問題。

+0

嗯,這非常有趣。將進一步調查...此外,jsfiddle.net是一個偉大的服務,感謝鏈接到它。 – EleventyOne 2013-04-30 19:50:28

+0

FWIW,我在擺弄heightStyle,注意到'自動'在我的頁面上沒有在jsfiddle上做什麼。我發現如果包含面板的寬度被設置,那麼'auto'就會破壞:http://jsfiddle.net/HNp5r/3/。所以看起來,這個手風琴小部件有一些不可思議的高度計算代碼,不僅僅是盒子尺寸的東西:( – EleventyOne 2013-04-30 20:09:03

+2

)暫時的結論:如果滿足以下條件,heightStyle的'auto'選項會中斷:(a)寬度設置在父面板上, b)box-sizing:border-box被設置,但是'content'選項在這兩種情況下都可以工作,我想這只是一個bug而已,非常令人失望,但是感謝您的幫助! – EleventyOne 2013-04-30 20:17:09