summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/scroll-to-text-fragment/resources/util.js
diff options
context:
space:
mode:
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.js21
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;
+}
+