forgotten file
This commit is contained in:
parent
ca92e29401
commit
daa0e284c3
1 changed files with 20 additions and 0 deletions
20
src/services/offset_finder/offset_finder.service.js
Normal file
20
src/services/offset_finder/offset_finder.service.js
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
export const findOffset = (child, parent, { top = 0, left = 0 } = {}, ignorePadding = true) => {
|
||||||
|
const result = {
|
||||||
|
top: top + child.offsetTop,
|
||||||
|
left: left + child.offsetLeft
|
||||||
|
}
|
||||||
|
if (!ignorePadding && child !== window) {
|
||||||
|
const topPaddingStr = window.getComputedStyle(child)['padding-top']
|
||||||
|
const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))
|
||||||
|
const leftPaddingStr = window.getComputedStyle(child)['padding-left']
|
||||||
|
const leftPadding = Number(leftPaddingStr.substring(0, leftPaddingStr.length - 2))
|
||||||
|
result.top += ignorePadding ? 0 : topPadding
|
||||||
|
result.left += ignorePadding ? 0 : leftPadding
|
||||||
|
}
|
||||||
|
|
||||||
|
if (child.offsetParent && (parent === window || parent.contains(child.offsetParent))) {
|
||||||
|
return findOffset(child.offsetParent, parent, result, false)
|
||||||
|
} else {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue