javascript - getBoundingClientRect 知道一个元素是否在一个特定的垂直点之上

标签 javascript html css

我正在使用 getBoundingClientRect 来了解元素是否在页面中的特定点之上。所以我这样做:

var rect = el.getBoundingClientRect();

if (rect.top < bottom_limit) {
   return true;
}

我认为这运行良好,但在一些调试中我发现某些元素对于所有顶部、底部、右侧、左侧都返回 0。例如:Example1Example2

<span id='a'>
    <span id='b'>This is some crazy text.</span>
</span>

#b {
    float: left;
}

#b {
    position: absolute;
}

我担心得到全零。为什么会这样?我可以相信这种方法可以完成我想要完成的事情吗?

最佳答案

您可以考虑使用 document.getBoxObjectFor(el),或尝试使用 el.offsetTop/offsetLeft/offsetWidth/offsetHeight。认为它们可能只是 Mozilla,但不确定它们是否适用于非 block 级元素。

关于javascript - getBoundingClientRect 知道一个元素是否在一个特定的垂直点之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731502/

相关文章:

javascript - 在 XCode 上构建 React-Native v 0.45.0 的问题

php - 模拟打开大量链接

html - 当浏览器大小发生变化时,图像无法与文本正确对齐 - 有时会从屏幕上消失

jquery - 在可折叠的 jQuery 中对齐图像和文本

javascript - 我的 Div 不是样式?

javascript - 为什么我的 HTML 模板附加到同一个 DIV 容器?

javascript - Chrome 扩展程序轮询 html 滞后页面

javascript - 突出显示ace中的单个字符

html - 如果HTML <audio>标签开始播放歌曲,则启动功能

javascript - Jquery 动画不工作