用两个动画Div检测碰撞

时间:2016-05-05 17:56:51

标签: javascript jquery html css animation

我正在使用CSS动画在屏幕上移动两个矩形div标签。每一个都像一根柱子(比它更宽)。动画使每个div旋转,使其成为一个角度,然后再向上指向。 一个动画由用户触发,另一个动画不断向另一个div移动。

我尝试使用getBoundingClientRect()来检测一个div的角落何时拦截正朝着它移动的div。我还使用jQuery来获取它们的.position(),但它们返回左:0。

使用margin-left属性完成在屏幕上移动的div。

我是否应该研究任何方法,或者是否有人能解决类似的问题?

谢谢, DH

2 个答案:

答案 0 :(得分:0)

您应该使用transform: translate移动它们。

此外,由于你在javascript中移动元素,你应该将它们的状态保存在内存中并完全用javascript进行碰撞检测。

不应该为此使用DOM API。

答案 1 :(得分:0)

DOM上没有方法可以检测重叠的对象。我建议使用场景的几何模型,自己做三角测量,看看两个盒子之间是否有交叉点。使用JS显式动画对象也更容易,因为您不必担心与浏览器的CSS动画或过渡不同步。

你基本上在寻找line-line intersection