【问题标题】:How can I detect if two elements are touching如何检测两个元素是否接触
【发布时间】:2016-05-26 23:54:55
【问题描述】:

所以我想知道您是否可以通过 if 语句测试两个相互接触的元素。我知道我是 javascript 新手,而且我不像其他人那么了解,但我不知道如何测试两个元素是否接触。

例如,我希望它是这样的:

var el = document.getElementById("element1");
var el2 = document.getElementById("element2");

if (el1 touching el2) {
//code
//code
}

是的,我知道这不是你的做法,但我想知道是否有某种方法可以判断两个元素是否接触......

【问题讨论】:

  • 是的,这很复杂,但有可能。现在剩下的就是去做 :D 祝你好运。
  • 先定义“触摸”一词。
  • 是的,我想知道我应该怎么做?
  • 可能以getBoundingClientRect() 开头。并考虑是否要考虑 z-index 。由于它们都是框,您可能可以使用AABB 碰撞检测来查看它们是否相交。

标签: javascript dom element


【解决方案1】:

使用Element.getBoundingClientRect() 获取他们的盒子。然后使用碰撞测试,例如AABB,看看它们是否相交。

请注意,如果您对任一元素应用任何疯狂的旋转变换,我认为这将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多