<!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>
