| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="../resources/intersection-observer-test-utils.js"></script> |
| <style> |
| html, body { |
| margin: 0; |
| padding: 0; |
| height: 200px; |
| width: 100%; |
| } |
| #parent { |
| position: relative; |
| height: 200px; |
| width: 200px; |
| background-color: rgb(250, 221, 221); |
| overflow-y: clip; |
| overflow-x: visible; |
| } |
| #child { |
| background-color: rgb(208, 250, 208); |
| position: absolute; |
| left: 100%; |
| width: 200px; |
| height: 200px; |
| } |
| </style> |
| </head> |
| <body> |
| <div id="parent"> |
| <div id="child"></div> |
| </div> |
| </body> |
| <script> |
| const test = async_test("ParentWithOverflowVisibleAndNotVisible"); |
| const child = document.getElementById("child"); |
| const observer = new IntersectionObserver((entries) => { |
| test.step(() => { |
| assert_true(entries[0].isIntersecting); |
| assert_equals(entries[0].intersectionRatio, 1.0); |
| assert_equals(entries[0].intersectionRect.height, 200); |
| assert_equals(entries[0].intersectionRect.width, 200); |
| }); |
| test.done(); |
| }); |
| observer.observe(child); |
| </script> |
| </html> |