Skip to content

Instantly share code, notes, and snippets.

@duongdam
Created November 18, 2021 01:50
Show Gist options
  • Save duongdam/acf08b4a475fff7e75a734c14a20cb12 to your computer and use it in GitHub Desktop.
Save duongdam/acf08b4a475fff7e75a734c14a20cb12 to your computer and use it in GitHub Desktop.
Get position element
export function getPosition(el) {
let xPos = el.offsetWidth || 0
let yPos = 0
while (el) {
if (el.tagName === "BODY") {
let xScroll = el.scrollLeft || document.documentElement.scrollLeft
let yScroll = el.scrollTop || document.documentElement.scrollTop
xPos += (el.offsetLeft - xScroll + el.clientLeft)
yPos += (el.offsetTop - yScroll + el.clientTop)
} else {
// all other non-BODY elements
xPos += (el.offsetLeft - el.scrollLeft + el.clientLeft)
yPos += (el.offsetTop - el.scrollTop + el.clientTop)
}
el = el.offsetParent;
}
return {
left: xPos,
top: yPos
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment