| <!DOCTYPE html> | 
 | <html class="reftest-wait"> | 
 | <title> | 
 |   In effect animations should effectively apply will-change (i.e. force a | 
 |   stacking context) | 
 | </title> | 
 | <link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> | 
 | <link rel="author" href="mailto:bokan@chromium.org"> | 
 | <link rel="match" href="side-effects-of-animations-in-effect-ref.html"> | 
 | <script src="/common/reftest-wait.js"></script> | 
 | <script src="../testcommon.js"></script> | 
 | <script src="resources/side-effects-common.js"></script> | 
 | <style> | 
 |   .testcase { | 
 |     position: relative; | 
 |     margin: 2px; | 
 |     border: 1px solid black; | 
 |     width: 250px; | 
 |     height: 25px; | 
 |   } | 
 |   .container { | 
 |     background-color: lightgrey; | 
 |     margin: 4px; | 
 |     display: flex; | 
 |     width: 600px; | 
 |     flex-direction: row; | 
 |     justify-content: flex-end; | 
 |     align-items: center; | 
 |   } | 
 |   .label { | 
 |     flex-grow: 1; | 
 |   } | 
 |   .target { | 
 |     width: 100%; | 
 |     height: 100%; | 
 |   } | 
 |   .absolutebox { | 
 |     position: absolute; | 
 |     top: 0; | 
 |     left: 0; | 
 |     width: 100%; | 
 |     height: 100%; | 
 |   } | 
 |   .pass { | 
 |     background-color: limegreen; | 
 |   } | 
 |   .fail { | 
 |     background-color: red; | 
 |   } | 
 | </style> | 
 |  | 
 | <script> | 
 | onload = takeScreenshotOnAnimationsReady; | 
 | </script> | 
 |  | 
 | <!-- OPACITY --> | 
 |  | 
 | <!-- Is current - before phase playing forwards --> | 
 | <div class="container"> | 
 |   <div class="label">Opacity - before phase</div> | 
 |   <div class="testcase" id="opacity-before"> | 
 |     <div class="absolutebox fail"></div> | 
 |     <div class="target pass"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#opacity-before', STATE_IN_EFFECT, PROPERTY_OPACITY, PHASE_BEFORE); | 
 | </script> | 
 |  | 
 | <!-- Is current - in play--> | 
 | <div class="container"> | 
 |   <div class="label">Opacity - active phase</div> | 
 |   <div class="testcase" id="opacity-active"> | 
 |     <div class="absolutebox fail"></div> | 
 |     <div class="target pass"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#opacity-active', STATE_IN_EFFECT, PROPERTY_OPACITY, PHASE_ACTIVE); | 
 | </script> | 
 |  | 
 | <!-- Is current - after phase playing backwards--> | 
 | <div class="container"> | 
 |   <div class="label">Opacity - after phase</div> | 
 |   <div class="testcase" id="opacity-after"> | 
 |     <div class="absolutebox fail"></div> | 
 |     <div class="target pass"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#opacity-after', STATE_IN_EFFECT, PROPERTY_OPACITY, PHASE_AFTER); | 
 | </script> | 
 |  | 
 | <!-- TRANSFORM --> | 
 |  | 
 | <!-- Is current - before phase playing forwards --> | 
 | <div class="container"> | 
 |   <div class="label">Transform - before phase</div> | 
 |   <div class="testcase" id="transform-before"> | 
 |     <div class="absolutebox fail"></div> | 
 |     <div class="target pass"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#transform-before', STATE_IN_EFFECT, PROPERTY_TRANSFORM, PHASE_BEFORE); | 
 | </script> | 
 |  | 
 | <!-- Is current - in play--> | 
 | <div class="container"> | 
 |   <div class="label">Transform - active phase</div> | 
 |   <div class="testcase" id="transform-active"> | 
 |     <div class="absolutebox fail"></div> | 
 |     <div class="target pass"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#transform-active', STATE_IN_EFFECT, PROPERTY_TRANSFORM, PHASE_ACTIVE); | 
 | </script> | 
 |  | 
 | <!-- Is current - after phase playing backwards--> | 
 | <div class="container"> | 
 |   <div class="label">Transform - after phase</div> | 
 |   <div class="testcase" id="transform-after"> | 
 |     <div class="absolutebox fail"></div> | 
 |     <div class="target pass"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#transform-after', STATE_IN_EFFECT, PROPERTY_TRANSFORM, PHASE_AFTER); | 
 | </script> | 
 |  | 
 | <!-- BACKGROUND COLOR --> | 
 | <!-- | 
 |   unlike opacity and transform, background color shouldn't create a stacking | 
 |   context. | 
 | --> | 
 |  | 
 | <!-- Is current - before phase playing forwards --> | 
 | <div class="container"> | 
 |   <div class="label">Background-color - before phase</div> | 
 |   <div class="testcase" id="bgcolor-before"> | 
 |     <div class="absolutebox pass"></div> | 
 |     <div class="target fail"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#bgcolor-before', STATE_IN_EFFECT, PROPERTY_BGCOLOR, PHASE_BEFORE); | 
 | </script> | 
 |  | 
 | <!-- Is current - in play--> | 
 | <div class="container"> | 
 |   <div class="label">Background-color - active phase</div> | 
 |   <div class="testcase" id="bgcolor-active"> | 
 |     <div class="absolutebox pass"></div> | 
 |     <div class="target fail"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#bgcolor-active', STATE_IN_EFFECT, PROPERTY_BGCOLOR, PHASE_ACTIVE); | 
 | </script> | 
 |  | 
 | <!-- Is current - after phase playing backwards--> | 
 | <div class="container"> | 
 |   <div class="label">Background-color - after phase</div> | 
 |   <div class="testcase" id="bgcolor-after"> | 
 |     <div class="absolutebox pass"></div> | 
 |     <div class="target fail"></div> | 
 |   </div> | 
 | </div> | 
 | <script> | 
 |   setupAnimation('#bgcolor-after', STATE_IN_EFFECT, PROPERTY_BGCOLOR, PHASE_AFTER); | 
 | </script> | 
 |  | 
 | </html> |