如何检测两个 div 是否重叠?
不考虑div的宽度,它基本上是一条垂直线段。(顶部,左侧)点是 A 点,而底部(顶部 + 高度)是 B 点,依此类推。然后,我将每个 div 与 divs 数组中的其他 div 进行比较,然后创建一个冲突 div 数组。但是,我坚持如何以编程方式执行此操作。
这是我的 div 数组:
var divs = [
{class:'A', top:0, left:0, height:'60px'},
{class:'B', top:50, left:60, height:'60px'},
{class:'C', top:30, left:10, height:'60px'},
{class:'D', top:100, left:180, height:'60px'},
{class:'E', top:80, left:50, height:'60px'},
{class:'F', top:110, left:200, height:'60px'},
{class:'G', top:55, left:80, height:'60px'}
];
这是我开始的功能:
this.collide = function( divs )
{
var collidingDivs = [], z = events.length;
for(i; i<z; i++)
{
if
(
// Begin pseudocode
( divsB.top >= divsA.top ) &&
( (divsB.top + divsB.height) <= (divsA.top + divsA.height) )
)
{
collidingDivs.push(divs[i].class);
}
}
console.log(collidingDivs); // Array of divs that overlap (collide)
};
我完全被困在这一点上。如何遍历每个 div 并检查它是否与任何其他 div 冲突?