getBoundingClientRect().top 和 offsetTop 有什么区别?
https://codepen.io/anon/pen/bWZWQg
const elem = document.querySelector('#find');
console.log('getBoundingClientRect: ' + elem.getBoundingClientRect().top);
console.log('offsetTop: ' + elem.offsetTop);
// Stuff to push the div down the page
<div id='find'>Find me</div>
从我的快速测试来看,唯一的区别似乎是返回的小数位数。
原文由 Evanss 发布,翻译遵循 CC BY-SA 4.0 许可协议
getBoundingClientRect
为您提供相对于客户端视口的偏移量,而offsetTop
始终是固定的静态属性。尽管当元素在文档中的实际位置发生变化时它会发生变化。如需真正的说明,请使用笔,您可以自己检查差异。如果元素在相对容器内,则
offsetTop
将相对于给定的容器 笔看到笔,滚动 div,同时检查控制台。
如果元素的容器是相对的那么