new-element-on-start.html (1738B)
1 <!DOCTYPE html> 2 <html class=reftest-wait> 3 <title>View transitions: new element tag specified for start phase</title> 4 <link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> 5 <link rel="author" href="mailto:vmpstr@chromium.org"> 6 <link rel="match" href="new-element-on-start-ref.html"> 7 8 <script src="/common/reftest-wait.js"></script> 9 <style> 10 div { 11 width: 100px; 12 height: 100px; 13 contain: paint; 14 position: absolute; 15 top: 50px; 16 } 17 18 .before { 19 background: lightblue; 20 left: 50px; 21 } 22 .after { 23 background: black; 24 left: 200px; 25 } 26 .hidden { 27 background: red; 28 left: 350px; 29 } 30 31 html::view-transition-group(hidden) { animation-duration: 300s; } 32 html::view-transition-image-pair(hidden) { opacity: 0; } 33 34 html::view-transition-group(before) { animation-duration: 0s; } 35 html::view-transition-image-pair(before) { filter: invert(1); } 36 37 html::view-transition-group(after) { animation-duration: 0s; } 38 html::view-transition-image-pair(after) { filter: invert(1); } 39 40 html::view-transition-group(root) { animation: unset; opacity: 0; } 41 html::view-transition { background: lightpink; } 42 43 </style> 44 45 <div id=before class=before></div> 46 <div id=after class=after></div> 47 48 <div id=hidden class=hidden></div> 49 50 <script> 51 failIfNot(document.startViewTransition, "Missing document.startViewTransition"); 52 53 async function runTest() { 54 hidden.style.viewTransitionName = "hidden"; 55 before.style.viewTransitionName = "before"; 56 let transition = document.startViewTransition(() => { 57 before.remove(); 58 after.style.viewTransitionName = "after"; 59 }); 60 transition.ready.then(() => requestAnimationFrame(() => requestAnimationFrame(takeScreenshot))); 61 } 62 onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); 63 </script>