我正在使用CSS动画在屏幕上移动两个矩形div标签。每一个都像一根柱子(比它更宽)。动画使每个div旋转,使其成为一个角度,然后再向上指向。 一个动画由用户触发,另一个动画不断向另一个div移动。
我尝试使用getBoundingClientRect()来检测一个div的角落何时拦截正朝着它移动的div。我还使用jQuery来获取它们的.position(),但它们返回左:0。
使用margin-left属性完成在屏幕上移动的div。
我是否应该研究任何方法,或者是否有人能解决类似的问题?
谢谢, DH
答案 0 :(得分:0)
您应该使用transform: translate
移动它们。
此外,由于你在javascript中移动元素,你应该将它们的状态保存在内存中并完全用javascript进行碰撞检测。
不应该为此使用DOM API。
答案 1 :(得分:0)
DOM上没有方法可以检测重叠的对象。我建议使用场景的几何模型,自己做三角测量,看看两个盒子之间是否有交叉点。使用JS显式动画对象也更容易,因为您不必担心与浏览器的CSS动画或过渡不同步。
你基本上在寻找line-line intersection。