| <!DOCTYPE html> |
| <html class="reftest-wait"> |
| <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#basic-shape-interpolation"> |
| <link rel="match" href="clip-path-animation-three-keyframes2-ref.html"> |
| <meta name=fuzzy content="0-255;0-1000"> |
| <style> |
| .container { |
| width: 300px; |
| height: 300px; |
| background-color: green; |
| clip-path: ellipse(50% 40% at 50% 50%); |
| /* Use a long animation that start at 50% progress where the slope of the |
| selected timing function is zero. By setting up the animation in this way, |
| we accommodate lengthy delays in running the test without a potential drift |
| in the animated property value. This is important for avoiding flakes, |
| especially on debug builds. The screenshots are taken as soon as the |
| animation is ready, thus the long animation duration has no bearing on |
| the actual duration of the test. */ |
| animation: clippath 1000000s cubic-bezier(0,1,1,0) -500000s; |
| } |
| @keyframes clippath { |
| 0% { |
| clip-path: path('M 300 300 L 500 0 L 500 500 L 0 300 z'); |
| } |
| 10% { |
| clip-path: path('M 100 100 L 200 0 L 200 200 L 0 120 z'); |
| animation-timing-function: cubic-bezier(0,1,1,0); |
| } |
| 100% { |
| clip-path: path('M 200 200 L 300 0 L 300 300 L 0 200 z'); |
| animation-timing-function: cubic-bezier(0,1,1,0); |
| } |
| } |
| |
| </style> |
| <script src="/common/reftest-wait.js"></script> |
| <body> |
| <div class="container"></div> |
| |
| <script> |
| // The start delay of the animation makes it jump 50% of the animation, which |
| // means we would select the keyframes at 10% and 100% for animation. The |
| // progress would be (0.5-0.1) / (1-0.1) = 0.44. So a timing function input of |
| // 0.44 results in an output of 0.5. |
| document.getAnimations()[0].ready.then(() => { |
| takeScreenshot(); |
| }); |
| </script> |
| </body> |
| </html> |