【发布时间】:2016-09-27 21:19:39
【问题描述】:
我试图检测我的两个 div 是否重叠。 我有一个包含文本块的 div,该 div 可以通过 buttonclick 展开和缩小。下面是另一个 div,它将被“事物”填充,直到某个点它会变成一个滚动列表。现在到棘手的部分。
这很好用,直到列表填充到最大(我无法更改)或在平板电脑上 7"。
所以我正在尝试编写一个可以检测两个 div 是否重叠的方法。 我无法在任何地方找到一个好的解决方案,可能没有,或者我没有搜索正确的东西,无论哪种方式我都需要帮助。
这是我迄今为止尝试过的:
crashDetection(event, pageInfoBlock) {
let helBlockTop = parseInt(document.getElementById('page-info').getBoundingClientRect().bottom, 10);
let helBlockBottom = parseInt(document.getElementById('page-info').getBoundingClientRect().height, 10);
let containerBottom = parseInt(document.getElementById('bottomContainer').getBoundingClientRect().top, 10);
if (helBlockTop + helBlockBottom > containerBottom && containerBottom !== 0) {
console.log("It overlap");
}
}
这行得通.. 几乎是因为在某些情况下,当我向下滚动包含整个内容的 div 时,它会被拉伸,所以看起来不错.. 但是如果我再次滚动到顶部,它们会重叠.. 并且我的方法检测到重叠,即使没有..
所以我的问题是如何检测两个 div 是否重叠? 请不要使用 JQuery,对不起我的英语不好..:P
【问题讨论】:
-
如果没有 DOM 结构的相关部分(即两个
divs是兄弟姐妹、孩子还是更复杂的东西,以及代码中的 id 与什么匹配,这非常困难猜测发生了什么。还提供 CSS 的相关部分以了解您的 div 重叠的方式/原因可能会有所帮助,直接在 CSS 中修复可能要容易得多,然后尝试在 JS 中解决。 -
很抱歉,我发现了一个关于此的问题,因为我发现了一个像魅力一样工作的遮阳篷:stackoverflow.com/questions/12066870/… 无论如何感谢您的帮助!
-
请对您的帖子进行拼写检查。
标签: javascript