| <style> |
| |
| div { |
| background-color: rebeccapurple; |
| width: 100px; |
| height: 100px; |
| } |
| |
| #first { |
| position: absolute; |
| top: 10px; |
| left: 10px; |
| } |
| |
| #second { |
| position: absolute; |
| top: 200px; |
| left: 200px; |
| } |
| |
| .animate-class { |
| animation: 1s linear 0s 1 normal scale; |
| } |
| |
| .first-letter::first-letter { |
| color:red; |
| } |
| |
| @keyframes scale { |
| 0% { |
| transform: scale(0); |
| } |
| |
| 10% { |
| transform: scale(1); |
| } |
| |
| 100% { |
| transform: scale(1); |
| } |
| } |
| |
| </style> |
| <script> |
| |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| window.onload = async function() { |
| let shadowRoot = document.body.attachShadow({ mode: "open" }); |
| |
| // Put a named slot and assign an element to it. |
| shadowRoot.innerHTML = `<slot name="first"></slot>`; |
| let firstElement = document.body.appendChild(document.createElement("div")); |
| firstElement.slot = "first"; |
| firstElement.id = "first"; |
| |
| await new Promise(resolve => requestAnimationFrame(resolve)); |
| |
| // Create another named slot and assign another element to it. |
| let secondSlot = shadowRoot.appendChild(document.createElement("slot")); |
| secondSlot.name = "second"; |
| |
| // Start animation in the seconds slot. |
| let secondElement = document.body.appendChild(document.createElement("div")); |
| secondElement.slot = "second"; |
| secondElement.className = "animate-class"; |
| secondElement.id = "second"; |
| |
| const animation = secondElement.getAnimations()[0]; |
| |
| await animation.ready; |
| |
| await new Promise(resolve => requestAnimationFrame(resolve)); |
| await new Promise(resolve => requestAnimationFrame(resolve)); |
| |
| firstElement.remove(); |
| |
| // Wait until animation has progressed some before snapshotting the test result. |
| while (animation.currentTime < 100) |
| await new Promise(resolve => requestAnimationFrame(resolve)); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| </script> |
| |