| <!DOCTYPE html> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>Animation with neutral keyframe is responsive to change in underlying style</title> |
| <link rel="help" href="https://www.w3.org/TR/web-animations-1/#the-effect-value-of-a-keyframe-animation-effect"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="responsive-test.js"></script> |
| </head> |
| <body></body> |
| <script type="text/javascript"> |
| promise_test(async t => { |
| const responsiveTest = |
| createResponsiveTest(t, { |
| property: 'backgroundPosition', |
| to: '100px 100px' |
| }); |
| await responsiveTest.ready; |
| responsiveTest.underlyingValue = '20px 60px'; |
| responsiveTest.assertResponsive([ |
| {at: 0.25, is: '40px 70px'}, |
| {at: 0.75, is: '80px 90px'}, |
| ]); |
| responsiveTest.underlyingValue = '60px 20px'; |
| responsiveTest.assertResponsive([ |
| {at: 0.25, is: '70px 40px'}, |
| {at: 0.75, is: '90px 80px'}, |
| ]); |
| }, 'Animating from a neutral keyframe when the underlying style is ' + |
| 'explicitly set'); |
| |
| promise_test(async t => { |
| const responsiveTest = |
| createResponsiveTest(t, { |
| property: 'backgroundPosition', |
| from: 'inherit', |
| to: '100px 100px' |
| }); |
| await responsiveTest.ready; |
| responsiveTest.inheritedValue = '20px 60px'; |
| responsiveTest.assertResponsive([ |
| {at: 0.25, is: '40px 70px'}, |
| {at: 0.75, is: '80px 90px'}, |
| ]); |
| responsiveTest.inheritedValue = '60px 20px'; |
| responsiveTest.assertResponsive([ |
| {at: 0.25, is: '70px 40px'}, |
| {at: 0.75, is: '90px 80px'}, |
| ]); |
| }, 'Animating from a neutral keyframe when the underlying style is ' + |
| 'inherited from the parent'); |
| </script> |