| <!DOCTYPE html> | |
| <link rel="help" href="https://www.w3.org/TR/intersection-observer/#intersection-observer-interface"> | |
| <script src="../resources/testharness.js"></script> | |
| <script src="../resources/testharnessreport.js"></script> | |
| <style> | |
| #target { | |
| height: 40px; | |
| width: 40px; | |
| background-color: green; | |
| } | |
| #scroller { | |
| box-sizing: border-box; | |
| width: 100px; | |
| height: 100px; | |
| overflow: hidden; | |
| padding-top: 100px; | |
| } | |
| </style> | |
| <div id="scroller"> | |
| <div id="target"></div> | |
| </div> | |
| <script> | |
| async_test((t) => { | |
| let options = { | |
| scrollMargin: '20px', | |
| threshold: [0] | |
| } | |
| let observer = new IntersectionObserver(t.step_func_done((entries) => { | |
| assert_true(entries[0].isIntersecting, "isIntersecting"); | |
| assert_approx_equals(entries[0].intersectionRatio, 0.5, 0.001); | |
| }), options); | |
| observer.observe(document.getElementById("target")); | |
| }, "IntersectionObserver's scroll margin"); | |
| </script> |