| <html class="reftest-wait"> | |
| <title>Worklet Animation sets keyframes</title> | |
| <link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/"> | |
| <meta name="assert" content="Can update the keyframes for an effect while the animation is running"> | |
| <link rel="match" href="references/translated-box-ref.html"> | |
| <script src="/web-animations/testcommon.js"></script> | |
| <script src="/common/reftest-wait.js"></script> | |
| <script src="common.js"></script> | |
| <style> | |
| #box { | |
| width: 100px; | |
| height: 100px; | |
| background-color: green; | |
| } | |
| </style> | |
| <div id="box"></div> | |
| <script> | |
| registerConstantLocalTimeAnimator(500).then(()=>{ | |
| const keyframes_before = [ | |
| { transform: 'translateX(0)' }, | |
| { transform: 'translateX(200px)' } | |
| ]; | |
| const keyframes_after = [ | |
| { transform: 'translateY(0)' }, | |
| { transform: 'translateY(200px)' } | |
| ]; | |
| const box = document.getElementById('box'); | |
| const effect = new KeyframeEffect(box, keyframes_before, {duration: 1000}); | |
| const animation = new WorkletAnimation('constant_time', effect); | |
| animation.play(); | |
| waitForAsyncAnimationFrames(1).then(_ => { | |
| effect.setKeyframes(keyframes_after); | |
| waitForAsyncAnimationFrames(1).then(_ => { | |
| takeScreenshot(); | |
| }); | |
| }); | |
| }); | |
| </script> |