| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Basic User Interface Test: interpolable outline-* properties animation</title> |
| <link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net"> |
| <link rel="help" href="https://drafts.csswg.org/css-ui-3/#propdef-outline-style"> |
| <link rel="help" href="https://www.w3.org/TR/web-animations-1/#dom-animatable-animate"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style> |
| @keyframes outline-anim { |
| from { |
| outline: solid 1px rgba(1, 0, 0, 0.5); |
| outline-offset: 1px; |
| } |
| to { |
| outline: solid 3px rgba(3, 0, 0, 0.5); |
| outline-offset: 3px; |
| } |
| } |
| |
| #test { |
| animation: outline-anim 3s -1.5s paused linear; |
| outline: solid 1px rgba(1, 0, 0, 0.5); |
| outline-offset: 1px; |
| } |
| </style> |
| <body> |
| <div id="test"></div> |
| <div id=log></div> |
| |
| <script> |
| // outline being a render-only property, its animation can be done off the main thread |
| // checking the values after the first paint is safer, hence requestAnimationFrame |
| setup({explicit_done:true}); |
| requestAnimationFrame(function() { |
| // synchronous tests being run during the page's first paint |
| test( |
| function(){ |
| var test = document.getElementById("test"); |
| assert_equals(getComputedStyle(test).outlineColor, 'rgba(2, 0, 0, 0.5)'); |
| }, "outline-color is animated as a color"); |
| test( |
| function(){ |
| var test = document.getElementById("test"); |
| assert_equals(getComputedStyle(test).outlineWidth, '2px'); |
| }, "outline-width is animated as a length"); |
| test( |
| function(){ |
| var test = document.getElementById("test"); |
| assert_equals(getComputedStyle(test).outlineOffset, '2px'); |
| }, "outline-offset is animated as a length"); |
| done(); |
| }); |
| </script> |
| </body> |