root-style-change-during-animation.html (1455B)
1 <!DOCTYPE html> 2 <html class=reftest-wait> 3 <title>View transitions: root element style changes during transition</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="root-style-change-during-animation-ref.html"> 7 <script src="/common/reftest-wait.js"></script> 8 <style> 9 #target { 10 width: 100px; 11 height: 100px; 12 contain: paint; 13 background: blue; 14 view-transition-name: target; 15 } 16 17 #hidden { 18 background: pink; 19 width: 10px; 20 height: 10px; 21 view-transition-name: hidden; 22 contain: paint; 23 } 24 25 html::view-transition { 26 background: grey; 27 } 28 29 html::view-transition-group(hidden) { 30 animation-duration: 500s; 31 visibility: hidden; 32 } 33 34 html::view-transition-group(root) { 35 visibility: hidden; 36 } 37 38 .test::view-transition-group(target) { 39 background: green; 40 } 41 .test::view-transition-image-pair(target) { 42 visibility: hidden; 43 } 44 </style> 45 46 <div id=target></div> 47 <div id=hidden></div> 48 49 <script> 50 failIfNot(document.startViewTransition, "Missing document.startViewTransition"); 51 52 function flipClass() { 53 document.documentElement.classList.add("test"); 54 requestAnimationFrame(takeScreenshot); 55 } 56 57 async function runTest() { 58 document.startViewTransition(() => { 59 hidden.style.width="20px"; 60 requestAnimationFrame(() => requestAnimationFrame(flipClass)); 61 }); 62 } 63 onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); 64 </script>