一尘不染

如何检查一个元素是否与其他元素重叠?[重复]

javascript

我有两个div元素。他们每个人都有450px的宽度和高度。如何检查第一个div是否与第二个div重叠?

我尝试使用javascript hittest,但是有点复杂。由于我试图找出其实际工作方式,因此我想从一个简单的代码开始。

我发现可以使用 .getClientRects 来获取元素的边界,但是我不确定如何比较边界。

请给我提意见!


阅读 284

收藏
2020-05-01

共1个答案

一尘不染

类似这样的东西,rect1rect2通过getBoundingClientRect()进行检索:

var overlap = !(rect1.right < rect2.left || 
                rect1.left > rect2.right || 
                rect1.bottom < rect2.top || 
                rect1.top > rect2.bottom)

说明:如果括号中的一个或多个表达式为true,则没有重叠。如果全部为false,则必须存在重叠。

2020-05-01