new-content-is-empty-div.html (1683B)
1 <!DOCTYPE html> 2 <html class=reftest-wait> 3 <title>View transitions: old content captures an empty div</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-content-is-empty-div-ref.html"> 7 8 <script src="/common/reftest-wait.js"></script> 9 <style> 10 div { 11 contain: paint; 12 width: 100px; 13 height: 100px; 14 position: absolute; 15 top: 50px; 16 } 17 #source { 18 left: 50px; 19 background: green; 20 } 21 #target { 22 left: 200px; 23 } 24 #hidden { 25 background: red; 26 view-transition-name: hidden; 27 } 28 29 html::view-transition-group(hidden) { animation-duration: 300s; } 30 html::view-transition-image-pair(hidden) { animation: unset; opacity: 0; } 31 32 /* The effect of the following should be position at the incoming element 33 but contents of the new element. 34 */ 35 html::view-transition-group(shared) { animation-duration: 0s; } 36 html::view-transition-new(shared) { animation: unset; opacity: 1; } 37 html::view-transition-old(shared) { animation: unset; opacity: 1; } 38 39 html::view-transition-group(root) { animation: unset; opacity: 0; } 40 html::view-transition { background: lightpink; } 41 42 </style> 43 44 <div id=source></div> 45 <div id=target></div> 46 <div id=hidden></div> 47 48 <script> 49 failIfNot(document.startViewTransition, "Missing document.startViewTransition"); 50 51 async function runTest() { 52 source.style = "view-transition-name: shared"; 53 document.startViewTransition(() => { 54 source.style = ""; 55 target.style = "view-transition-name: shared"; 56 57 requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)) 58 }); 59 } 60 onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); 61 </script>