我的代码中有问题,我可以通过点击它来移动红色(square1),我想要做的是当红色触摸蓝色时发现碰撞。我希望它在发生碰撞时改变颜色......
这是我的代码更清楚: http://jsbin.com/iFAlIyIv/4/edit
答案 0 :(得分:1)
你的基本方法是正确的,问题是这样的:
而不是square1.left
,您需要square1.offsetLeft
。元素没有left
属性。 top
,width
和height
也是如此。
您需要按类名选择元素,而不是document.getElementById("square2")
,因为没有带有该ID的元素(只有具有该类的元素)。
您正在呼叫changecouleur
,但您可能打算致电colorswap
。看起来像是一些未完成的重构。
此后您也不需要任何其他检查:
if (bl > ar || br < al) {
return false;
} //overlap not possible
if (bt > ab || bb < at) {
return false;
} //overlap not possible
如果这些条件都不成立,则必须重叠。