2012-08-03 35 views
1

我有一個動態填充的jquery按鈕集。唯一的問題是,如果動態添加的按鈕太多,它們會換行到下一行,而不會優雅地完成。以下是顯示:
(element a|about|us|lorem|
|ipsum|and|done)
包裝jQuery按鈕集

與此主要問題是,在最右邊的第一線,並在最左邊的第二行的元素的元素沒有圓角,他們有像所有其他不在按鈕集的第一個或最後一個位置的按鈕元素一樣的方角。有沒有辦法像這樣得到一個顯示?
(element a|about|us|lorem)
(ipsum|and|done)

謝謝!

+0

這是用於移動解決方案嗎?如果是這樣的話,可以考慮使用其他設計方法,例如使按鈕的寬度達到100%,並使用display:block來堆疊它們。我可以建議的另一件事是通過一些數學計算深入研究jQuery,以強有力的手臂按鈕來做你想做的事情。 – Lowkase 2012-08-03 17:53:54

+0

不,不是一個移動解決方案,一個桌面解決方案。如果沒有簡單的方法去做,我可能會看到jquery如何調整按鈕的大小,將按鈕的容器設置爲固定寬度,併爲每一行按鈕創建一個新的按鈕集。 – Vap0r 2012-08-03 18:00:48

回答

2

使用offset()正如Peter所說的絕對是正確的方向。找到正確的元素後,您需要添加.ui-corner-right.ui-corner-left類。

$("#box label").each(function(){ //loop through all the labels for the buttons 
    var self = $(this); 
    if(self.offset().top > self.height()){ //find the first element on the second line 
     self.addClass("ui-corner-left") 
     .prev().prev().addClass("ui-corner-right") // move to the previous label on the above line 
     return false; // break out of the .each 
    } 
}); 

http://jsfiddle.net/KEfau/當然,這僅適用於事情是兩線和conidition的。每個裏面()可能會因您的佈局有所不同。對於多行按鈕,我會有一個變量,它存儲當前行的頂部偏移量,然後當元素不匹配時,執行類增加。

+0

太棒了,這正是我一直在尋找的。我沒有抵消經驗,但在此之後,我肯定會考慮在將來使用它。謝謝! – Vap0r 2012-08-27 20:28:03

0

你可以嘗試檢測與jQuery斷行偏移()和突破去年同一類,你之前設置的項目,然後突破到同一類作爲你的第一個之後的項目。我不確定這是否可行,取決於元素如何得到圓角,我不是很熟悉jQuery -ii