<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"><p>Scrolling Contents</p></div> </div> <script> const scroller = document.getElementById('scroller'); const scroll_timeline = new ScrollTimeline({source: scroller}); const box = document.getElementById('box'); const animation = box.animate( [ { transform: 'translateY(0)', opacity: 1 }, { transform: 'translateY(200px)', opacity: 0 } ], { 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>