-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ScrollTimeline] Add timeline to Element.animate()
This patch adds a timeline option to Element.animate() function based on the recent spec change: w3c/csswg-drafts#5013. Change-Id: Ibf7e6f824f9e013f62da015cebdbc893255142dd Bug: 1080720
- Loading branch information
1 parent
e2580a2
commit 8f530bd
Showing
3 changed files
with
111 additions
and
0 deletions.
There are no files selected for viewing
70 changes: 70 additions & 0 deletions
70
scroll-animations/animation-with-animatable-interface.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
<html class="reftest-wait"> | ||
<title>Scroll-linked animation with Animatable interface</title> | ||
<link rel="help" href="https://drafts.csswg.org/scroll-animations/"> | ||
<meta name="assert" content="ScrollTimeline should work with animatable | ||
interface"> | ||
<link rel="match" href="animation-ref.html"> | ||
|
||
<script src="/web-animations/testcommon.js"></script> | ||
<script src="/common/reftest-wait.js"></script> | ||
|
||
<style> | ||
#box { | ||
width: 100px; | ||
height: 100px; | ||
background-color: green; | ||
} | ||
|
||
#covered { | ||
width: 100px; | ||
height: 100px; | ||
background-color: red; | ||
} | ||
|
||
#scroller { | ||
overflow: auto; | ||
height: 100px; | ||
width: 100px; | ||
will-change: transform; | ||
/* force compositing */ | ||
} | ||
|
||
#contents { | ||
height: 1000px; | ||
width: 100%; | ||
} | ||
</style> | ||
|
||
<div id="box"></div> | ||
<div id="covered"></div> | ||
<div id="scroller"> | ||
<div id="contents"></div> | ||
</div> | ||
|
||
<script> | ||
const scroller = document.getElementById('scroller'); | ||
const scroll_timeline = new ScrollTimeline({ | ||
scrollSource: scroller, | ||
timeRange: 1000 | ||
}); | ||
const box = document.getElementById('box'); | ||
const animation = box.animate( | ||
[ | ||
{ transform: 'translateY(0)', opacity: 1 }, | ||
{ transform: 'translateY(200px)', opacity: 0 } | ||
], { | ||
duration: 1000, | ||
timeline: scroll_timeline | ||
} | ||
); | ||
|
||
animation.ready.then(() => { | ||
// Move the scroller to the halfway point. | ||
const maxScroll = scroller.scrollHeight - scroller.clientHeight; | ||
scroller.scrollTop = 0.5 * maxScroll; | ||
|
||
waitForAnimationFrames(2).then(_ => { | ||
takeScreenshot(); | ||
}); | ||
}); | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters