| <!DOCTYPE html> | |
| <!-- | |
| | Test case which ensures that an animation assigned to an element who | |
| | has display: none will wait until display becomes non-none to begin. | |
| | From https://www.w3.org/TR/2013/WD-css3-animations-20130219/#animations, | |
| | "Setting the display property to ‘none’ will terminate any running animation | |
| | applied to the element and its descendants. If an element has a display of | |
| | ‘none’, updating display to a value other than ‘none’ will start all | |
| | animations applied to the element by the ‘animation-name’ property, as well | |
| | as all animations applied to descendants with display other than ‘none’." | |
| --> | |
| <html> | |
| <head> | |
| <style> | |
| @keyframes testAnimation{ | |
| 0% { transform: translate(0, 0); } | |
| 50% { transform: translate(100px, 0); } | |
| 100% { transform: translate(100px, 100px); } | |
| } | |
| #block { | |
| width: 100px; | |
| height: 100px; | |
| font-size: 30px; | |
| background-color: red; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div id="block"></div> | |
| <script> | |
| if (window.testRunner) { | |
| window.testRunner.waitUntilDone(); | |
| } | |
| var blockDiv = document.getElementById('block'); | |
| window.addEventListener('load', function() { | |
| if (window.testRunner) { | |
| // Run the transition to the half-way point. | |
| window.testRunner.AdvanceClockByMs(500); | |
| window.testRunner.DoNonMeasuredLayout(); | |
| } | |
| blockDiv.style.display = "none"; | |
| if (window.testRunner) { | |
| window.testRunner.DoNonMeasuredLayout(); | |
| } | |
| blockDiv.style.animation = "testAnimation 1s forwards"; | |
| if (window.testRunner) { | |
| window.testRunner.DoNonMeasuredLayout(); | |
| window.testRunner.AdvanceClockByMs(500); | |
| window.testRunner.DoNonMeasuredLayout(); | |
| } | |
| blockDiv.style.display = "block"; | |
| if (window.testRunner) { | |
| window.testRunner.DoNonMeasuredLayout(); | |
| window.testRunner.AdvanceClockByMs(500); | |
| window.testRunner.notifyDone(); | |
| } | |
| }); | |
| </script> | |
| </body> | |
| </html> |