| <!DOCTYPE html> |
| |
| <html> |
| <head> |
| <style> |
| .box { |
| height: 100px; |
| width: 100px; |
| margin: 10px; |
| background-color: blue; |
| display: inline-block; |
| } |
| |
| #brightness { |
| -webkit-animation: brightness-anim 2s linear; |
| } |
| |
| #blur { |
| -webkit-animation: blur-anim 2s linear; |
| } |
| |
| #grayscale { |
| -webkit-animation: grayscale-anim 2s linear; |
| } |
| |
| #sepia { |
| -webkit-animation: sepia-anim 2s linear; |
| } |
| |
| #no { |
| -webkit-animation: no-anim 2s linear; |
| } |
| |
| #multiple1 { |
| -webkit-animation: multiple-anim1 2s linear; |
| } |
| |
| #multiple2 { |
| -webkit-animation: multiple-anim2 2s linear; |
| } |
| |
| #urlfilter { |
| -webkit-animation: url-to-filter-anim 2s linear; |
| } |
| |
| #filterurl { |
| -webkit-animation: filter-to-url-anim 2s linear; |
| } |
| |
| #filterdiffurl { |
| -webkit-animation: filter-diff-url-anim 2s linear; |
| } |
| |
| #generated1 { |
| -webkit-animation: generated-anim1 2s linear; |
| } |
| |
| #generated2 { |
| -webkit-animation: generated-anim2 2s linear; |
| } |
| |
| @-webkit-keyframes brightness-anim { |
| from { background-image: filter(url(resources/image.svg), brightness(1)); } |
| to { background-image: filter(url(resources/image.svg), brightness(0)); } |
| } |
| |
| @-webkit-keyframes blur-anim { |
| from { background-image: filter(url(resources/image.svg), blur(0)); } |
| to { background-image: filter(url(resources/image.svg), blur(10px)); } |
| } |
| |
| @-webkit-keyframes grayscale-anim { |
| from { background-image: filter(url(resources/image.svg), grayscale(1)); } |
| to { background-image: filter(url(resources/image.svg), grayscale(0)); } |
| } |
| |
| @-webkit-keyframes sepia-anim { |
| from { background-image: filter(url(resources/image.svg), sepia(1)); } |
| to { background-image: filter(url(resources/image.svg), sepia(0)); } |
| } |
| |
| @-webkit-keyframes no-anim { |
| from { background-image: filter(url(resources/image.svg), sepia(1)); } |
| to { background-image: filter(url(resources/blue.svg), sepia(0)); } |
| } |
| |
| @-webkit-keyframes multiple-anim1 { |
| from { background-image: filter(url(resources/image.svg), sepia(0.25) blur(3px) hue-rotate(45deg)); } |
| to { background-image: filter(url(resources/image.svg), sepia(0.75)); } |
| } |
| |
| @-webkit-keyframes multiple-anim2 { |
| from { background-image: filter(url(resources/image.svg), contrast(0.25)); } |
| to { background-image: filter(url(resources/image.svg), contrast(0.75) blur(3px) hue-rotate(45deg)); } |
| } |
| |
| @-webkit-keyframes url-to-filter-anim { |
| from { background-image: url(resources/image.svg); } |
| to { background-image: filter(url(resources/image.svg), sepia(0.5)); } |
| } |
| |
| @-webkit-keyframes filter-to-url-anim { |
| from { background-image: filter(url(resources/image.svg), sepia(0.5)); } |
| to { background-image: url(resources/image.svg); } |
| } |
| |
| @-webkit-keyframes filter-diff-url-anim { |
| from { background-image: url(resources/image.svg); } |
| to { background-image: filter(url(resources/blue.svg), sepia(0.5)); } |
| } |
| |
| @-webkit-keyframes generated-anim1 { |
| from { background-image: filter(filter(url(resources/image.svg), blur(3px)), sepia(1)); } |
| to { background-image: filter(filter(url(resources/image.svg), blur(3px)), sepia(0)); } |
| } |
| |
| @-webkit-keyframes generated-anim2 { |
| from { background-image: filter(-webkit-cross-fade(url(resources/image.svg), url(resources/image.svg), 50%), sepia(1)); } |
| to { background-image: filter(-webkit-cross-fade(url(resources/image.svg), url(resources/image.svg), 50%), sepia(0)); } |
| } |
| </style> |
| <script src="../../animations/resources/animation-test-helpers.js"></script> |
| <script type="text/javascript"> |
| const expectedValues = [ |
| // [animation-name, time, element-id, property, expected-value, tolerance] |
| ["brightness-anim", 1, "brightness", "backgroundImage", "filter(url(image.svg), brightness(0.5))", 0.05], |
| ["blur-anim", 1, "blur", "backgroundImage", "filter(url(image.svg), blur(5px))", 0.05], |
| ["grayscale-anim", 1, "grayscale", "backgroundImage", "filter(url(image.svg), grayscale(0.5))", 0.05], |
| ["sepia-anim", 1, "sepia", "backgroundImage", "filter(url(image.svg), sepia(0.5))", 0.05], |
| ["no-anim", 1, "no", "backgroundImage", "filter(url(blue.svg), sepia(0))", 0], |
| ["multiple-anim1", 1, "multiple1", "backgroundImage", "filter(url(image.svg), sepia(0.5) blur(1.5px) hue-rotate(22.5deg))", 0.05], |
| ["multiple-anim2", 1, "multiple2", "backgroundImage", "filter(url(image.svg), contrast(0.5) blur(1.5px) hue-rotate(22.5deg))", 0.05], |
| ["url-to-filter-anim", 1, "urlfilter", "backgroundImage", " filter(url(image.svg), sepia(0.25))", 0.05], |
| ["filter-to-url-anim", 1, "filterurl", "backgroundImage", " filter(url(image.svg), sepia(0.25))", 0.05], |
| ["filter-diff-url-anim", 1, "filterdiffurl", "backgroundImage", " filter(url(blue.svg), sepia(0.5))", 0], |
| // FIXME: We need to support generated images as input to other generated images for animations first. |
| ["generated-anim1", 1, "generated1", "backgroundImage", "filter(filter(url(image.svg), blur(3px)), sepia(0))", 0], |
| ["generated-anim2", 1, "generated2", "backgroundImage", "filter(-webkit-cross-fade(url(image.svg), url(image.svg), 50%), sepia(0))", 0], |
| ]; |
| |
| runAnimationTest(expectedValues); |
| </script> |
| </head> |
| <body> |
| |
| <div class="box" id="brightness"></div> |
| <div class="box" id="blur"></div> |
| <div class="box" id="grayscale"></div> |
| <div class="box" id="sepia"></div> |
| <div class="box" id="no"></div> |
| <div class="box" id="multiple1"></div> |
| <div class="box" id="multiple2"></div> |
| <div class="box" id="urlfilter"></div> |
| <div class="box" id="filterurl"></div> |
| <div class="box" id="filterdiffurl"></div> |
| <div class="box" id="generated1"></div> |
| <div class="box" id="generated2"></div> |
| |
| <div id="result"> |
| </div> |
| </body> |
| </html> |