Skip to content

Commit

Permalink
Bug 1856453 [wpt PR 42293] - [scroll-start] scroll-start-target shoul…
Browse files Browse the repository at this point in the history
…d align with scroll-snap-align, a=testonly

Automatic update from web-platform-tests
[scroll-start] scroll-start-target should align with scroll-snap-align

There is a proposal[1] for a more generic element-level scroll
alignment indicator which would apply to scroll-start-targets and would
mean that scroll-snap-align dictates the alignment of
scroll-start-targets.
It is likely that that work will be realized later than
scroll-start-target.
This patch allows scroll-snap-align directly specify the alignment of
scroll-start-targets; this behavior is closer to the end-goal of that
proposal.

[1]w3c/csswg-drafts#9012 (comment)

Bug: 1439807
Change-Id: Id6ff1937a806d00c3ac0326d53d379d1c39b5897
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4906566
Commit-Queue: David Awogbemila <[email protected]>
Reviewed-by: Steve Kobes <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1214872}

--

wpt-commits: ae3d6e3e0e7121408c173e158fb9eab53ec29b88
wpt-pr: 42293
  • Loading branch information
David Awogbemila authored and moz-wptsync-bot committed Nov 6, 2023
1 parent 22ff313 commit a44ea54
Showing 1 changed file with 74 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> CSS Scroll Snap 2 Test: scroll-start-target*</title>
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-2/#scroll-start-target">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/dom/events/scrolling/scroll_support.js"></script>
</head>
<body>
<style>
#space {
width: 1000px;
height: 1000px;
border: solid 1px red;
}
#scroller {
width: 400px;
height: 400px;
overflow: hidden;
border: solid 1px blue;
position: absolute;
}
#target {
width: 100px;
height: 100px;
background-color: pink;
scroll-start-target: auto auto;
position: absolute;
top: 400px;
left: 400px;
}
</style>
<div id="scroller">
<div id="space"></div>
<div id="target"></div>
</div>
<script>
promise_test(async (t) => {
await waitForCompositorCommit();

assert_equals(scroller.scrollTop, 400,
"scroller is vertically scrolled to target");
assert_equals(scroller.scrollLeft, 400,
"scroller is horizontally scrolled to target");

target.style.scrollSnapAlign = "center";
await waitForCompositorCommit();

assert_equals(scroller.scrollTop, 250,
"scroller is vertically aligned to target's center");
assert_equals(scroller.scrollLeft, 250,
"scroller is horizontally aligned to target's center");

target.style.scrollSnapAlign = "end";
await waitForCompositorCommit();

assert_equals(scroller.scrollTop, 100,
"scroller is vertically aligned to target's bottom");
assert_equals(scroller.scrollLeft, 100,
"scroller is horizontally aligned to target's right");

target.style.scrollSnapAlign = "start";
await waitForCompositorCommit();

assert_equals(scroller.scrollTop, 400,
"scroller is vertically aligned to target's top");
assert_equals(scroller.scrollLeft, 400,
"scroller is horizontally aligned to target's left");
}, "scroll-start-target aligns with scroll-snap-align");
</script>
</body>
</html>

0 comments on commit a44ea54

Please sign in to comment.