diff options
Diffstat (limited to 'testing/web-platform/tests/css/css-view-transitions/massive-element-on-top-of-viewport-offscreen-old.html')
-rw-r--r-- | testing/web-platform/tests/css/css-view-transitions/massive-element-on-top-of-viewport-offscreen-old.html | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-view-transitions/massive-element-on-top-of-viewport-offscreen-old.html b/testing/web-platform/tests/css/css-view-transitions/massive-element-on-top-of-viewport-offscreen-old.html new file mode 100644 index 0000000000..a2eb0447bd --- /dev/null +++ b/testing/web-platform/tests/css/css-view-transitions/massive-element-on-top-of-viewport-offscreen-old.html @@ -0,0 +1,92 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: massive element on top of viewport and completely offscreen (old content)</title> +<link rel="help" href="https://github.com/WICG/view-transitions"> +<link rel="author" href="mailto:khushalsagar@chromium.org"> +<link rel="match" href="massive-element-on-top-of-viewport-offscreen-ref.html"> +<meta name="fuzzy" content="massive-element-on-top-of-viewport-offscreen-ref.html:maxDifference=0-3;totalPixels=0-330"> + +<script src="/common/reftest-wait.js"></script> +<style> +.target_before_block_start_edge { + position: fixed; + inset-block-start: -40100px; + inset-inline-start: 0px; +} + +.target { + contain: paint; + inline-size: 100px; + block-size: 40000px; + view-transition-name: target; +} + +.top { + inline-size: 100%; + block-size: 100px; + background: lightblue; +} + +.middle { + inline-size: 100%; + block-size: 39800px; + background: green; +} + +.bottom { + inline-size: 100%; + block-size: 100px; + background: blue; +} + +.hidden { + contain: paint; + inline-size: 10px; + block-size: 10px; + background: grey; + view-transition-name: hidden; +} + +html::view-transition-group(hidden) { animation-duration: 300s; } +html::view-transition-image-pair(hidden) { animation: unset; opacity: 0; } + +html::view-transition-old(*), html::view-transition-new(*) { + object-fit: none; +} + +/* We should capture at least viewport height worth of content from the element's bottom edge */ +html::view-transition-group(target) { + animation: unset; + transform: unset; + + position: fixed; + top: unset; + right: unset; + inset-block-end: 0; + inset-inline-start: 0; +} +html::view-transition-old(target) { animation: unset; opacity: 1; } +html::view-transition-new(target) { animation: unset; opacity: 0; } + +</style> + +<div class="target target_before_block_start_edge" id="target"> + <div class="top">This text is at the top of the box</div> + <div class="middle">This text is in the middle of the box</div> + <div id="scrollblue" class="bottom">This text is at the bottom of the box</div> +</div> +<div id=hidden class=hidden></div> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +async function runTest() { + document.startViewTransition(() => { + requestAnimationFrame(() => requestAnimationFrame(() => + requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)) + )); + }); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + |