diff options
Diffstat (limited to 'testing/web-platform/tests/css/css-scroll-snap/scroll-padding.html')
-rw-r--r-- | testing/web-platform/tests/css/css-scroll-snap/scroll-padding.html | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-scroll-snap/scroll-padding.html b/testing/web-platform/tests/css/css-scroll-snap/scroll-padding.html new file mode 100644 index 0000000000..0c637ed6db --- /dev/null +++ b/testing/web-platform/tests/css/css-scroll-snap/scroll-padding.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#scroll-padding" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +div { + position: absolute; + margin: 0px; +} +#scroller { + height: 500px; + width: 500px; + overflow: hidden; + scroll-snap-type: both mandatory; +} +#target { + width: 300px; + height: 300px; + background-color: blue; +} +</style> + +<div id="scroller"> + <div style="width: 2000px; height: 2000px;"></div> + <div id="target"></div> +</div> + +<script> +test(() => { + scroller.style.scrollPadding = "100px"; + + target.style.scrollSnapAlign = "start"; + target.style.left = "300px"; + target.style.top = "300px"; + + scroller.scrollTo(0, 0); + // `target position (300px, 300px)` - `padding (100px, 100px)`. + assert_equals(scroller.scrollLeft, 200); + assert_equals(scroller.scrollTop, 200); + + target.style.scrollSnapAlign = "end"; + + // `target position (300px, 300px)` + `target size (300px, 300px) + + // `padding (100px, 100px) - `scroller size (500px, 500px)`. + scroller.scrollTo(0, 0); + assert_equals(scroller.scrollLeft, 200); + assert_equals(scroller.scrollTop, 200); +}, "Snaps to the positions adjusted by scroll-padding"); +</script> |