aboutsummaryrefslogtreecommitdiff
path: root/src/services/offset_finder
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2019-09-25 08:36:30 +0300
committerHenry Jameson <me@hjkos.com>2019-09-25 08:36:30 +0300
commit4f563e6efb135e74454cf744eb9ce170ae7a4024 (patch)
treebf496906572b46125d34b49b484af538f48c8ca2 /src/services/offset_finder
parentdaa0e284c32cc8c97006e3a1701ab96ddfabfd30 (diff)
account for parent padding, too
Diffstat (limited to 'src/services/offset_finder')
-rw-r--r--src/services/offset_finder/offset_finder.service.js20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/services/offset_finder/offset_finder.service.js b/src/services/offset_finder/offset_finder.service.js
index edee6412..1c45bb1a 100644
--- a/src/services/offset_finder/offset_finder.service.js
+++ b/src/services/offset_finder/offset_finder.service.js
@@ -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 }
+}