2

我想得到一个子元素的总 offSetTop 和总 offSetLeft ,它们有很多级别的父元素并且可能会加起来。

除了以手动方式逐一添加之外,这是一种速记方式吗?

4

3 回答 3

14

要在没有 jQuery 的情况下提供答案:

var a = Element, b = 0, c = 0;
while (a) {
    b += a.offsetLeft;
    c += a.offsetTop;
    a = a.offsetParent;
}

Element您需要offsetLeftand的 Element 节点在哪里offsetTop

于 2012-10-18T17:11:25.027 回答
3

使用 jQuery:$( node ).offset() 然后.top.left

于 2012-01-07T06:19:45.050 回答
0

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;
于 2021-08-27T00:03:04.137 回答