diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-scroll-anchoring/opt-out.html | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-scroll-anchoring/opt-out.html')
-rw-r--r-- | testing/web-platform/tests/css/css-scroll-anchoring/opt-out.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-scroll-anchoring/opt-out.html b/testing/web-platform/tests/css/css-scroll-anchoring/opt-out.html new file mode 100644 index 0000000000..12d46c13f9 --- /dev/null +++ b/testing/web-platform/tests/css/css-scroll-anchoring/opt-out.html @@ -0,0 +1,74 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + +body { height: 2000px; overflow-anchor: none; } +#scroller { overflow: scroll; width: 500px; height: 300px; } +.anchor { + position:relative; height: 100px; width: 150px; + background-color: #afa; border: 1px solid gray; +} +#forceScrolling { height: 500px; background-color: #fcc; } + +</style> +<div id="outerChanger"></div> +<div id="outerAnchor" class="anchor"></div> +<div id="scroller"> + <div id="innerChanger"></div> + <div id="innerAnchor" class="anchor"></div> + <div id="forceScrolling"></div> +</div> +<script> + +// Tests that scroll anchoring can be disabled per-scroller with the +// overflow-anchor property. + +var divScroller = document.querySelector("#scroller"); +var docScroller = document.scrollingElement; +var innerChanger = document.querySelector("#innerChanger"); +var outerChanger = document.querySelector("#outerChanger"); + +function setup() { + divScroller.scrollTop = 100; + docScroller.scrollTop = 100; + innerChanger.style.height = "200px"; + outerChanger.style.height = "150px"; +} + +function reset() { + document.body.style.overflowAnchor = ""; + divScroller.style.overflowAnchor = ""; + divScroller.scrollTop = 0; + docScroller.scrollTop = 0; + innerChanger.style.height = ""; + outerChanger.style.height = ""; +} + +test(() => { + setup(); + + assert_equals(divScroller.scrollTop, 300, + "Scroll anchoring should apply to #scroller."); + + assert_equals(docScroller.scrollTop, 100, + "Scroll anchoring should not apply to the document scroller."); + + reset(); +}, "Disabled on document, enabled on div."); + +test(() => { + document.body.style.overflowAnchor = "auto"; + divScroller.style.overflowAnchor = "none"; + setup(); + + assert_equals(divScroller.scrollTop, 100, + "Scroll anchoring should not apply to #scroller."); + + assert_equals(docScroller.scrollTop, 250, + "Scroll anchoring should apply to the document scroller."); + + reset(); +}, "Enabled on document, disabled on div."); + +</script> |