diff options
Diffstat (limited to 'testing/web-platform/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html')
-rw-r--r-- | testing/web-platform/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html b/testing/web-platform/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html new file mode 100644 index 0000000000..da53e7a566 --- /dev/null +++ b/testing/web-platform/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html @@ -0,0 +1,83 @@ +<!DOCTYPE html> +<html> + +<body> + <style> + :root { + margin: 0px; + } + + #spacer { + height: 100vh; + width: 100px; + } + + #top_box { + width: 100px; + height: 60vh; + background-color: blue; + } + #middle_box { + width: 100px; + height: 60vh; + scroll-start-target: auto auto; + background-color: purple; + } + #bottom_box { + width: 100px; + height: 60vh; + background-color: yellow; + } + + #fragment_target { + width: 100px; + height: 100px; + background-color: red; + } + </style> + <div id="top_box"></div> + <div id="middle_box"></div> + <div id="bottom_box"></div> + <div id="spacer"></div> + <div id="fragment_target">Target</div> + <script> + function stashResult(key, results) { + fetch(`/css/css-scroll-snap-2/scroll-start-target/stash.py?key=${key}`, { + method: "POST", + body: JSON.stringify(results) + }).then(() => { + window.close(); + }); + } + function record() { + let scroll_position = "UNKNOWN"; + // Expect page is scrolled all the way down as the text is at the bottom of + // the page. + const expected_scroll_top = document.scrollingElement.scrollHeight - + document.scrollingElement.clientHeight; + + const scroll_start_target_top = top_box.getBoundingClientRect().height; + + if (document.scrollingElement.scrollTop == scroll_start_target_top) { + scroll_position = "AT_SCROLL_START_TARGET"; + } else if (document.scrollingElement.scrollTop == expected_scroll_top) { + scroll_position = "AT_TEXT_FRAGMENT"; + } + + const result = { + scroll_position: scroll_position + }; + + let key = (new URL(document.location)).searchParams.get("key"); + stashResult(key, result); + } + + window.onload = () => { + window.requestAnimationFrame(function () { + window.requestAnimationFrame(record); + }) + } + </script> +</body> + +</html>
\ No newline at end of file |