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