| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style> |
| |
| body { |
| height: 1200px; |
| } |
| #header { |
| position: relative; |
| height: 100px; |
| } |
| #evil { |
| position: relative; |
| top: -900px; |
| height: 1000px; |
| width: 100px; |
| } |
| #changer { |
| height: 100px; |
| } |
| #anchor { |
| height: 100px; |
| background-color: green; |
| } |
| |
| </style> |
| <div id="header"> |
| <div id="evil"></div> |
| </div> |
| <div id="changer"></div> |
| <div id="anchor"></div> |
| <script> |
| |
| // Tests that the anchor selection algorithm correctly accounts for negative |
| // positioning when computing bounds for visibility. |
| |
| test(() => { |
| document.scrollingElement.scrollTop = 250; |
| document.querySelector("#changer").style.height = "200px"; |
| assert_equals(document.scrollingElement.scrollTop, 350); |
| }, "Anchor selection accounts for negative positioning."); |
| |
| </script> |