Как определить, перекрываются ли два элемента div?
Не принимая во внимание ширину элемента div, в основном это вертикальный отрезок.Точка (сверху, слева) - это точка А, а снизу (сверху + высота) - точка В и т. Д.Затем я сравнил бы каждый div с каждым другим div в массиве 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?