<!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:[email protected]">
<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>