OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <meta charset=utf-8> |
| 3 <title>Test for effect composition</title> |
| 4 <link rel="help" href="https://w3c.github.io/web-animations/#effect-composition"
> |
| 5 <script src=/resources/testharness.js></script> |
| 6 <script src=/resources/testharnessreport.js></script> |
| 7 <script src="../../testcommon.js"></script> |
| 8 <div id="log"></div> |
| 9 <script> |
| 10 'use strict'; |
| 11 |
| 12 [ 'accumulate', 'add' ].forEach(function(composite) { |
| 13 test(function(t) { |
| 14 var div = createDiv(t); |
| 15 div.style.marginLeft = '10px'; |
| 16 var anim = |
| 17 div.animate({ marginLeft: ['0px', '10px'], composite }, 100); |
| 18 |
| 19 anim.currentTime = 50; |
| 20 assert_equals(getComputedStyle(div).marginLeft, '15px', |
| 21 'Animated margin-left style at 50%'); |
| 22 }, composite + ' onto the base value'); |
| 23 |
| 24 test(function(t) { |
| 25 var div = createDiv(t); |
| 26 var anims = []; |
| 27 anims.push(div.animate({ marginLeft: ['10px', '20px'], |
| 28 composite: 'replace' }, |
| 29 100)); |
| 30 anims.push(div.animate({ marginLeft: ['0px', '10px'], |
| 31 composite }, |
| 32 100)); |
| 33 |
| 34 anims.forEach(function(anim) { |
| 35 anim.currentTime = 50; |
| 36 }); |
| 37 |
| 38 assert_equals(getComputedStyle(div).marginLeft, '20px', |
| 39 'Animated style at 50%'); |
| 40 }, composite + ' onto an underlying animation value'); |
| 41 |
| 42 test(function(t) { |
| 43 var div = createDiv(t); |
| 44 div.style.marginLeft = '10px'; |
| 45 var anim = |
| 46 div.animate([{ marginLeft: '10px', composite }, |
| 47 { marginLeft: '30px', composite: 'replace' }], |
| 48 100); |
| 49 |
| 50 anim.currentTime = 50; |
| 51 assert_equals(getComputedStyle(div).marginLeft, '25px', |
| 52 'Animated style at 50%'); |
| 53 }, 'Composite when mixing ' + composite + ' and replace'); |
| 54 |
| 55 test(function(t) { |
| 56 var div = createDiv(t); |
| 57 div.style.marginLeft = '10px'; |
| 58 var anim = |
| 59 div.animate([{ marginLeft: '10px', composite: 'replace' }, |
| 60 { marginLeft: '20px' }], |
| 61 { duration: 100 , composite }); |
| 62 |
| 63 anim.currentTime = 50; |
| 64 assert_equals(getComputedStyle(div).marginLeft, '20px', |
| 65 'Animated style at 50%'); |
| 66 }, composite + ' specified on a keyframe overrides the composite mode of ' + |
| 67 'the effect'); |
| 68 |
| 69 test(function(t) { |
| 70 var div = createDiv(t); |
| 71 div.style.marginLeft = '10px'; |
| 72 var anim = |
| 73 div.animate([{ marginLeft: '10px', composite: 'replace' }, |
| 74 { marginLeft: '20px' }], |
| 75 100); |
| 76 |
| 77 anim.effect.composite = composite; |
| 78 anim.currentTime = 50; // (10 + (10 + 20)) * 0.5 |
| 79 assert_equals(getComputedStyle(div).marginLeft, '20px', |
| 80 'Animated style at 50%'); |
| 81 }, 'unspecified composite mode on a keyframe is overriden by setting ' + |
| 82 composite + ' of the effect'); |
| 83 }); |
| 84 |
| 85 </script> |
OLD | NEW |