| <!DOCTYPE html> |
| <html> |
| |
| <head> |
| <meta charset="utf-8"> |
| <title> CSS Scroll Snap 2 Test: scroll-initial-target interaction with fragment-navigation</title> |
| <link rel="help" href="https://drafts.csswg.org/css-scroll-snap-2/#scroll-initial-target"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| |
| <body> |
| <iframe id="frame" src="scroll-initial-target-with-fragment-navigation-inner-frame.html#fragment_target" |
| onload="runTest()"></iframe> |
| <script> |
| function runTest() { |
| test((t) => { |
| let scroller = frame.contentDocument.scrollingElement; |
| // fragment_target is at the bottom of the frame so the frame should be |
| // fully scrolled down to bring it into view (despite middle_box being |
| // the scroll-initial-target). |
| let expected_scroll_top = scroller.scrollHeight - scroller.clientHeight; |
| // The scroll-initial-target is just below top_box which has a height of |
| // 60vh. |
| const scroll_start_target_top = 0.6 * frame.contentWindow.innerHeight; |
| |
| assert_equals(frame.contentWindow.location.hash, "#fragment_target"); |
| assert_not_equals(scroll_start_target_top, expected_scroll_top); |
| assert_equals(frame.contentDocument.scrollingElement.scrollTop, |
| expected_scroll_top); |
| }, "scroll-initial-target does not override hash fragment navigation"); |
| } |
| </script> |
| </body> |