假设我<div>
在一个容器中有六个元素<div>
。这六个 div 中的每一个都是一个正方形,并float: left
应用了 CSS 样式。默认情况下,当它们到达容器的边缘时,<div>
它们会包裹起来。
现在,我的问题是,使用 Javascript,是否可以确定包装在哪个元素上?
如果它们显示在页面上,例如:
___ ___
| 1 | | 2 |
----- -----
___ ___
| 3 | | 4 |
----- -----
我试图确定环绕发生在第二个和第三个元素之间。如果您想知道我是否失去了理智,我尝试这样做的原因是如果单击其中一个框,我希望能够使用一些花哨的 shmansy jQuery 在行之间下拉一个信息区域。
___ ___
| * | | ! |
----- -----
| Someinfo|
___ ___
| * | | * |
----- -----
关于确定中断发生在哪里的任何想法?
PS我浮动并让它自动换行的原因是让它响应。现在,如果我调整浏览器的大小,它会相应地包装这些框。我不想硬编码列宽。
[编辑] 感谢 Explosion Pills 提供的答案,我能够想出一个解决方案。
// 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 个盒子)