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