我想得到一个子元素的总 offSetTop 和总 offSetLeft ,它们有很多级别的父元素并且可能会加起来。
除了以手动方式逐一添加之外,这是一种速记方式吗?
我想得到一个子元素的总 offSetTop 和总 offSetLeft ,它们有很多级别的父元素并且可能会加起来。
除了以手动方式逐一添加之外,这是一种速记方式吗?
要在没有 jQuery 的情况下提供答案:
var a = Element, b = 0, c = 0;
while (a) {
b += a.offsetLeft;
c += a.offsetTop;
a = a.offsetParent;
}
Element
您需要offsetLeft
and的 Element 节点在哪里offsetTop
?
使用 jQuery:$( node ).offset()
然后.top
和.left
https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect
如果您需要相对于文档左上角的边界矩形,只需将当前滚动位置添加到 top 和 left 属性(可以使用 window.scrollX 和 window.scrollY 获得)以获得边界矩形,即独立于当前滚动位置。
let { left, top } = domNode.getBoundingClientRect();
left += window.scrollX;
top += window.scrollY;