<!DOCTYPE html>
<meta name="viewport" content="width=device-width,initial-scale=1">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#container {
width: 200px;
height: 200px;
background-color: black;
}
#target {
position: relative;
top: 100px;
width: 100%;
height: 1px;
background-color: gray;
}
</style>
<div id="container"><div id="target"></div></div>
<script>
promise_test(async function(t) {
let intersections = 0;
const observer = new IntersectionObserver(entries => ++intersections);
observer.observe(document.getElementById("target"));
await document.getElementById("container").animate({ transform: 'translate(0, 100px)' }, 1000).finished;
assert_equals(intersections, 1);
}, "An element that already intersects with the viewport does not trigger the observer callback when animating its transform.");
</script>