Status: PASS | Duration: 7ms | Subtests: 1/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-view-transitions/snapshot-containing-block-absolute.html
<!DOCTYPE html> <html class=reftest-wait> <title>View transitions: use snapshot containing block for absolute position</title> <link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> <link rel="author" href="mailto:bokan@chromium.org"> <link rel="match" href="snapshot-containing-block-absolute-ref.html"> <meta name="fuzzy" content="maxDifference=0-20; totalPixels=0-100"> <script src="/common/reftest-wait.js"></script> <style> :root { view-transition-name: none; background-color: red; } body { height: 400vh; } #target { position: absolute; left: 0px; top: 600px; width: 100px; height: 100px; display: flex; justify-content: center; flex-direction: column; align-items: center; background: darkseagreen; view-transition-name: target; } ::view-transition-group(target) { animation-duration: 50s; animation-play-state: paused; top: unset; left: unset; right: 0px; bottom: 0px; } ::view-transition { position: absolute; left: 20px; top: 40px; width: 700px; height: 500px; background-color: limegreen; } ::view-transition-old(*) { animation: unset; opacity: 1; } ::view-transition-new(*) { animation: unset; opacity: 0; } </style> <div id="target">TARGET</div> <script> failIfNot(document.startViewTransition, "Missing document.startViewTransition"); async function runTest() { // Start the view transition at a scroll offset so that the snapshot // containing block differs from the initial containing block. Scroll so that // the target is at 0,0 so its transition group has an identity transform. const scrollTargetY = document.getElementById('target').offsetTop; window.scrollTo(0, scrollTargetY); let transition = document.startViewTransition(); await transition.ready; takeScreenshot(); } onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); </script>
/css/css-view-transitions/snapshot-containing-block-absolute-ref.html
<!DOCTYPE html> <html> <title>View transitions: use snapshot containing block for absolute position (ref)</title> <link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> <link rel="author" href="mailto:bokan@chromium.org"> <style> :root { background-color: red; } body { height: 400vh; } #target { position: absolute; bottom: 0px; right: 0px; width: 100px; height: 100px; display: flex; justify-content: center; flex-direction: column; align-items: center; background: darkseagreen; } #view-transition { position: absolute; left: 20px; top: 640px; width: 700px; height: 500px; background-color: limegreen; } </style> <div id="view-transition"> <div id="target">TARGET</div> </div> <script> onload = () => { const scrollTargetY = 600; window.scrollTo(0, scrollTargetY); } </script>