1

标题确实说明了这一点。这个怎么做?两个 div 的大小不同。两个 div 都在移动(我正在制作一个小 Jquery 游戏)。如果一个人撞到另一个人,我希望事情发生。

谢谢

4

2 回答 2

3

onOverlap 没有 JavaScript 事件,你必须自己计算 div 是否重叠:

var valueInRange = function(value,min, max) { 
   return (value >= min) && (value <= max);
}

var overlap = function(x1,y1,w1,h1,x2,y2,w2,h2) {
   xOverlap = valueInRange(x1, x2, x2 + w2) || valueInRange(x2, x1, x1 + w1);
   yOverlap = valueInRange(y1, y2, y2 + h2) || valueInRange(y2, y1, y1 + h1);
   return xOverlap && yOverlap;
}
于 2009-12-01T12:53:02.470 回答
1

你是如何使 div 移动的?当然,一种方法是编写一个简单的布尔返回函数,给定两个 div,计算它们是否重叠(获取角的坐标并比较交叉点)。然后,在导致 div 移动的函数结束时,调用该函数并在发生时采取适当的措施。

事实上,根据您的移动方式,您甚至可能拥有两个 div 的坐标,这非常有效。

除此之外,我不知道任何“重叠”事件或类似事件,因此定期检查是我能想到的唯一普遍适用的方式。根据您的代码结构,可能有更快的方法可用。

于 2009-12-01T12:16:41.237 回答