| <html class="reftest-wait"> |
| <title>Worklet Animation sets timing</title> |
| <link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/"> |
| <meta name="assert" content="Can update the timing 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 = [ |
| { transform: 'translateY(0)' }, |
| { transform: 'translateY(400px)' } |
| ]; |
| const options_before = { |
| duration: 1000 |
| }; |
| const options_after = { |
| duration: 2000 |
| }; |
| |
| const box = document.getElementById('box'); |
| const effect = new KeyframeEffect(box, keyframes, options_before); |
| const animation = new WorkletAnimation('constant_time', effect); |
| animation.play(); |
| |
| waitForAsyncAnimationFrames(1).then(_ => { |
| effect.updateTiming(options_after); |
| waitForAsyncAnimationFrames(1).then(_ => { |
| takeScreenshot(); |
| }); |
| }); |
| }); |
| </script> |