account for parent padding, too
This commit is contained in:
parent
daa0e284c3
commit
4f563e6efb
1 changed files with 15 additions and 5 deletions
|
@ -4,17 +4,27 @@ export const findOffset = (child, parent, { top = 0, left = 0 } = {}, ignorePadd
|
|||
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))
|
||||
const { topPadding, leftPadding } = findPadding(child)
|
||||
result.top += ignorePadding ? 0 : topPadding
|
||||
result.left += ignorePadding ? 0 : leftPadding
|
||||
}
|
||||
|
||||
if (child.offsetParent && (parent === window || parent.contains(child.offsetParent))) {
|
||||
console.log('eee', parent, child.offsetParent)
|
||||
if (child.offsetParent && (parent === window || parent.contains(child.offsetParent) || parent === child.offsetParent)) {
|
||||
return findOffset(child.offsetParent, parent, result, false)
|
||||
} else {
|
||||
const { topPadding, leftPadding } = findPadding(parent)
|
||||
result.top += topPadding
|
||||
result.left += leftPadding
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
const findPadding = (el) => {
|
||||
const topPaddingStr = window.getComputedStyle(el)['padding-top']
|
||||
const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))
|
||||
const leftPaddingStr = window.getComputedStyle(el)['padding-left']
|
||||
const leftPadding = Number(leftPaddingStr.substring(0, leftPaddingStr.length - 2))
|
||||
|
||||
return { topPadding, leftPadding }
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue