| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <style> |
| |
| div { |
| animation: anim 1s steps(10); |
| } |
| |
| @keyframes anim { |
| 25% { margin-left: 250px } |
| 50% { margin-left: 500px; animation-timing-function: steps(5); } |
| 75% { margin-left: 750px } |
| } |
| |
| </style> |
| <div></div> |
| <script> |
| |
| async_test(async t => { |
| const animation = document.querySelector("div").getAnimations()[0]; |
| |
| await animation.ready; |
| |
| animation.currentTime = 10; |
| assert_equals(internals.timeToNextAnimationTick(animation), 15, "Progress contained in the interval for an implicit 0% keyframe."); |
| |
| animation.currentTime = 265; |
| assert_equals(internals.timeToNextAnimationTick(animation), 10, "Progress contained in the interval for an explicit keyframe with an implicit steps() timing-function."); |
| |
| animation.currentTime = 510; |
| assert_equals(internals.timeToNextAnimationTick(animation), 40, "Progress contained in the interval for an explicit keyframe with an explicit steps() timing-function."); |
| |
| animation.currentTime = 780; |
| assert_equals(internals.timeToNextAnimationTick(animation), 20, "Progress contained in the interval for an implicit 100% keyframe."); |
| |
| t.done(); |
| }, "Computing the time until the next tick for a CSS Animation with implicit and explicit steps() timing functions."); |
| |
| </script> |