Finds the distance from a given element to the top of the document.
- Use a
while
loop andHTMLElement.offsetParent
to move up the offset parents of the given element. - Add
HTMLElement.offsetTop
for each element and return the result.
代码实现
const getVerticalOffset = el => {
let offset = el.offsetTop,
_el = el;
while (_el.offsetParent) {
_el = _el.offsetParent;
offset += _el.offsetTop;
}
return offset;
};
getVerticalOffset('.my-element'); // 120
翻译自:https://www.30secondsofcode.org/js/s/get-vertical-offset