假设我在容器<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