From 399f465e591ae56d3426f6d12eab44c791a1c4d6 Mon Sep 17 00:00:00 2001 From: Bulat Kidasov Date: Fri, 9 Feb 2018 10:25:03 +0400 Subject: [PATCH] [fix] NativeMethodsMixin measure/measureInWindow with scroll Account for scroll offsets when calculating measurements. Fix #702 Fix #805 Close #806 --- .../react-native-web/src/exports/UIManager/index.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/react-native-web/src/exports/UIManager/index.js b/packages/react-native-web/src/exports/UIManager/index.js index 5264190c..842b963a 100644 --- a/packages/react-native-web/src/exports/UIManager/index.js +++ b/packages/react-native-web/src/exports/UIManager/index.js @@ -16,11 +16,13 @@ import setValueForStyles from '../../vendor/setValueForStyles'; const getRect = node => { const height = node.offsetHeight; const width = node.offsetWidth; - let left = 0; - let top = 0; + let left = node.offsetLeft; + let top = node.offsetTop; + node = node.offsetParent; + while (node && node.nodeType === 1 /* Node.ELEMENT_NODE */) { - left += node.offsetLeft; - top += node.offsetTop; + left += node.offsetLeft - node.scrollLeft; + top += node.offsetTop - node.scrollTop; node = node.offsetParent; } return { height, left, top, width };