diff options
Diffstat (limited to 'testing/web-platform/tests/scroll-to-text-fragment/resources/util.js')
-rw-r--r-- | testing/web-platform/tests/scroll-to-text-fragment/resources/util.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/testing/web-platform/tests/scroll-to-text-fragment/resources/util.js b/testing/web-platform/tests/scroll-to-text-fragment/resources/util.js new file mode 100644 index 0000000000..00e1292988 --- /dev/null +++ b/testing/web-platform/tests/scroll-to-text-fragment/resources/util.js @@ -0,0 +1,21 @@ +// Returns true if element's center is within the visual viewport bounds. +function isInViewport(element) { + const viewportRect = { + left: visualViewport.offsetLeft, + top: visualViewport.offsetTop, + right: visualViewport.offsetLeft + visualViewport.width, + bottom: visualViewport.offsetTop + visualViewport.height + }; + + const elementRect = element.getBoundingClientRect(); + const elementCenter = { + x: elementRect.left + elementRect.width / 2, + y: elementRect.top + elementRect.height / 2 + }; + + return elementCenter.x > viewportRect.left && + elementCenter.x < viewportRect.right && + elementCenter.y > viewportRect.top && + elementCenter.y < viewportRect.bottom; +} + |