blob: 999d092fcba8b617bba95a3eae0d8efed36fcfa4 [file] [log] [blame]
<!DOCTYPE html>
<title>Test of animation-direction</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<style>
.running .box {
animation-delay: 1s;
animation-direction: reverse;
animation-duration: 1s;
animation-name: anim;
animation-timing-function: linear;
height: 100px;
left: 100px;
position: relative;
width: 100px;
}
@keyframes anim {
from { left: 200px; }
to { left: 300px; }
}
#none {
animation-fill-mode: none;
background-color: blue;
}
#backwards {
animation-fill-mode: backwards;
background-color: red;
}
#forwards {
animation-fill-mode: forwards;
background-color: green;
}
#both {
animation-fill-mode: both;
background-color: yellow;
}
</style>
<div id="container">
<div id="none" class="box">
None
</div>
<div id="backwards" class="box">
Backwards
</div>
<div id="forwards" class="box">
Forwards
</div>
<div id="both" class="box">
Both
</div>
</div>
<script>
'use strict';
test(function() {
container.offsetTop; // Force recalc
container.classList += 'running';
none.style.animationDelay = '1s';
assert_equals(getComputedStyle(none).left, '100px');
backwards.style.animationDelay = '1s';
assert_equals(getComputedStyle(backwards).left, '300px');
forwards.style.animationDelay = '1s';
assert_equals(getComputedStyle(forwards).left, '100px');
both.style.animationDelay = '1s';
assert_equals(getComputedStyle(both).left, '300px');
none.style.animationDelay = '-5s';
assert_equals(getComputedStyle(none).left, '100px');
backwards.style.animationDelay = '-5s';
assert_equals(getComputedStyle(backwards).left, '100px');
forwards.style.animationDelay = '-5s';
assert_equals(getComputedStyle(forwards).left, '200px');
both.style.animationDelay = '-5s';
assert_equals(getComputedStyle(both).left, '200px');
}, "animation directions work with fill modes");
</script>