OLD | NEW |
1 <!doctype html> | 1 <!DOCTYPE html> |
2 <html lang="en"> | 2 <title>Test of animation-direction timing functions</title> |
3 <head> | 3 <script src="../resources/testharness.js"></script> |
4 <title>Test of animation-direction timing functions</title> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <style> | 5 <style> |
6 body { | |
7 margin: 0; | |
8 } | |
9 | |
10 .box { | 6 .box { |
11 position: relative; | |
12 left: 20px; | |
13 top: 10px; | |
14 height: 50px; | |
15 width: 250px; | |
16 margin-bottom: 10px; | |
17 animation-duration: 2s; | 7 animation-duration: 2s; |
| 8 animation-iteration-count: 4; |
| 9 animation-name: move1; |
18 animation-timing-function: ease; /* ease is good for testing because it is
not symmetric */ | 10 animation-timing-function: ease; /* ease is good for testing because it is
not symmetric */ |
19 animation-iteration-count: 4; | |
20 } | |
21 | |
22 .move1 { | |
23 animation-name: move1; | |
24 background-color: blue; | 11 background-color: blue; |
25 color: white; | 12 color: white; |
| 13 height: 50px; |
| 14 left: 20px; |
| 15 margin-bottom: 10px; |
| 16 position: relative; |
| 17 top: 10px; |
| 18 width: 250px; |
26 } | 19 } |
27 | 20 |
28 .normal { | 21 .normal { |
29 animation-direction: normal; | 22 animation-direction: normal; |
30 } | 23 } |
31 | 24 |
32 .alternate { | 25 .alternate { |
33 animation-direction: alternate; | 26 animation-direction: alternate; |
34 } | 27 } |
35 | 28 |
36 .reverse { | 29 .reverse { |
37 animation-direction: reverse; | 30 animation-direction: reverse; |
38 } | 31 } |
39 | 32 |
40 .alternate-reverse { | 33 .alternate-reverse { |
41 animation-direction: alternate-reverse; | 34 animation-direction: alternate-reverse; |
42 } | 35 } |
43 | 36 |
44 @keyframes move1 { | 37 @keyframes move1 { |
45 from { left: 0px; } | 38 from { left: 0px; } |
46 to { left: 200px; } | 39 to { left: 200px; } |
47 } | 40 } |
48 </style> | 41 </style> |
49 <script src="resources/animation-test-helpers.js"></script> | 42 <div id="box1" class="box normal">normal</div> |
50 <script> | 43 <div id="box2" class="box alternate">alternate</div> |
51 const expectedValues = [ | 44 <div id="box3" class="box reverse">reverse</div> |
52 // [time, element-id, property, expected-value, tolerance] | 45 <div id="box4" class="box alternate-reverse">alternate-reverse</div> |
53 [0.2, "box1", "left", 18, 10], | 46 <script> |
54 [0.2, "box2", "left", 18, 10], | 47 'use strict'; |
55 [0.2, "box3", "left", 198, 10], | |
56 [0.2, "box4", "left", 198, 10], | |
57 [2.2, "box1", "left", 18, 10], | |
58 [2.2, "box2", "left", 198, 10], | |
59 [2.2, "box3", "left", 198, 10], | |
60 [2.2, "box4", "left", 18, 10], | |
61 ]; | |
62 | 48 |
63 runAnimationTest(expectedValues); | 49 function computedLeft(element) { |
| 50 return Number(getComputedStyle(element).left.slice(0, -2)); |
| 51 } |
64 | 52 |
65 </script> | 53 test(function() { |
66 </head> | 54 const epsilon = 0.002; |
67 <body> | 55 |
68 <div id="box1" class="box move1 normal">normal</div> | 56 box1.style.animationDelay = '-0.2s'; |
69 <div id="box2" class="box move1 alternate">alternate</div> | 57 assert_approx_equals(computedLeft(box1), 18.6525, epsilon, 'early box1'); |
70 <div id="box3" class="box move1 reverse">reverse</div> | 58 |
71 <div id="box4" class="box move1 alternate-reverse">alternate-reverse</div> | 59 box2.style.animationDelay = '-0.2s'; |
72 <div id="result"></div> | 60 assert_approx_equals(computedLeft(box2), 18.6525, epsilon, 'early box2'); |
73 </div> | 61 |
74 </body> | 62 box3.style.animationDelay = '-0.2s'; |
75 </html> | 63 assert_approx_equals(computedLeft(box3), 198.864, epsilon, 'early box3'); |
| 64 |
| 65 box4.style.animationDelay = '-0.2s'; |
| 66 assert_approx_equals(computedLeft(box4), 198.864, epsilon, 'early box4'); |
| 67 |
| 68 |
| 69 box1.style.animationDelay = '-2.2s'; |
| 70 assert_approx_equals(computedLeft(box1), 18.6525, epsilon, 'late box1'); |
| 71 |
| 72 box2.style.animationDelay = '-2.2s'; |
| 73 assert_approx_equals(computedLeft(box2), 198.864, epsilon, 'late box2'); |
| 74 |
| 75 box3.style.animationDelay = '-2.2s'; |
| 76 assert_approx_equals(computedLeft(box3), 198.864, epsilon, 'late box3'); |
| 77 |
| 78 box4.style.animationDelay = '-2.2s'; |
| 79 assert_approx_equals(computedLeft(box4), 18.6525, epsilon, 'late box4'); |
| 80 }, "animation-direction works with timing functions"); |
| 81 </script> |
OLD | NEW |