| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>CSS Variables - Transitions - Variable value specified before transition; 'all' keyword used</title> |
| |
| <meta rel="author" title="Kevin Babbitt"> |
| <meta rel="author" title="Greg Whitworth"> |
| <link rel="author" title="Microsoft Corporation" href="http://microsoft.com" /> |
| <link rel="help" href="http://www.w3.org/TR/css-variables-1/#syntax"> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <style> |
| #target |
| { |
| transition-property: all; |
| transition-duration: 1s; |
| } |
| #target |
| { |
| --value: blue; |
| color: var(--value); |
| } |
| #target.changed |
| { |
| --value: green; |
| } |
| </style> |
| </head> |
| <body> |
| |
| <div id="target">This text should transition from blue to green over a period of 1 second.</div> |
| |
| <script type="text/javascript"> |
| "use strict"; |
| |
| // Force an initial layout pass |
| document.documentElement.offsetHeight; |
| |
| test(function() { |
| assert_equals(window.getComputedStyle(document.getElementById("target")).getPropertyValue("--value").trim(), "blue", "--value is blue before transition runs"); |
| }, "Verify CSS variable value before transition"); |
| |
| test(function() { |
| // Different browsers generate interpolated colors differently, so check multiple valid forms. |
| assert_in_array(window.getComputedStyle(document.getElementById("target")).getPropertyValue("color").trim(), |
| ["rgb(0, 0, 255)", "rgba(0, 0, 255, 1)"], |
| "color is blue before transition runs"); |
| }, "Verify substituted color value before transition"); |
| |
| var afterAnimationVariableTest = async_test("Verify CSS variable value after transition"); |
| document.getElementById("target").addEventListener("transitionend", afterAnimationVariableTest.step_func_done(function() { |
| assert_equals(window.getComputedStyle(document.getElementById("target")).getPropertyValue("--value").trim(), "green", "--value is green after transition runs") |
| })); |
| |
| var afterAnimationColorTest = async_test("Verify substituted color value after transition"); |
| document.getElementById("target").addEventListener("transitionend", afterAnimationColorTest.step_func_done(function() { |
| assert_in_array(window.getComputedStyle(document.getElementById("target")).getPropertyValue("color").trim(), |
| ["rgb(0, 128, 0)", "rgba(0, 128, 0, 1)"], |
| "color is green after transition runs") |
| })); |
| |
| // Trigger transition |
| document.getElementById("target").className = "changed"; |
| |
| // Force another layout pass |
| document.documentElement.offsetHeight; |
| </script> |
| |
| </body> |
| </html> |