假設我在容器<div>
內有六個<div>
元素。這六個div中的每一個都是正方形,並且應用了CSS樣式float: left
。默認情況下,當他們到達容器邊緣時,它們將包裝。確定浮動元素中的包裹位置
現在,我的問題是,使用Javascript,是否有可能確定包裝是哪個元素?
如果他們像顯示在頁面上:
___ ___
| 1 | | 2 |
----- -----
___ ___
| 3 | | 4 |
----- -----
我試圖確定第二個和第三個元素之間發生的包裝。如果你想知道我是否已經失去了理智,我試圖這樣做的原因是,如果其中一個框被點擊,我希望能夠使用一些奇特的jQuery來下拉行間的信息區域。
___ ___
| * | | ! |
----- -----
| Someinfo|
___ ___
| * | | * |
----- -----
任何關於確定中斷髮生的想法?
P.S.我浮動並讓它自動換行的原因是讓它響應。現在,如果我調整瀏覽器的大小,它會相應地包裝盒子。我不想硬編碼列寬。
[編輯] 由於爆炸丸提供的答案,我能拿出一個解決方案。
// Offset of first element
var first = $(".tool:first").offset().left;
var offset = 0;
var count = 0;
$(".box").each(function() {
// Get offset
offset = $(this).offset().left;
// If not first box and offset is equal to first box offset
if(count > 0 && offset == first)
{
// Show where break is
console.log("Breaks on element: " + count);
}
// Next box
count++;
});
此輸出在控制檯以下:
Breaks on element: 7
Breaks on element: 14
Breaks on element: 21
Breaks on element: 28
當我有30個箱,其結束了寬7個箱和5行(最後一行僅2框)
是浮動的div相對或靜態寬度? – smilebomb 2012-07-09 18:51:23
靜態寬度,50x50 px – 2012-07-09 18:56:03