Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.scroller {
width: 100vw;
height: 100px;
display: flex;
scroll-snap-type: x mandatory;
overflow-x: auto;
}
.scroller.rtl {
direction: rtl;
}
.scroller.end > span {
scroll-snap-align: end;
}
.scroller.center > span {
scroll-snap-align: end;
}
</style>
<div class="scroller end">
<span style="min-width: 25px;"></span>
<span style="min-width: 100vw;"></span>
</div>
<div class="scroller center">
<span style="min-width: 25px;"></span>
<span style="min-width: 100vw;"></span>
</div>
<div class="scroller end rtl">
<span style="min-width: 25px;"></span>
<span style="min-width: 100vw;"></span>
</div>
<div class="scroller center rtl">
<span style="min-width: 25px;"></span>
<span style="min-width: 100vw;"></span>
</div>
<script>
test(() => {
const scroller = document.querySelector(".scroller.end");
assert_equals(scroller.scrollLeft, 0);
assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: end`");
test(() => {
const scroller = document.querySelector(".scroller.center");
assert_equals(scroller.scrollLeft, 0);
assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: center`");
test(() => {
const scroller = document.querySelector(".scroller.end.rtl");
assert_equals(scroller.scrollLeft, 0);
assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: end` in RTL");
test(() => {
const scroller = document.querySelector(".scroller.center.rtl");
assert_equals(scroller.scrollLeft, 0);
assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: center` in RTL");
</script>
</html>