| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Overflow: event.target for detached ::scroll-marker is its originating element</title> |
| <link rel="help" href="https://drafts.csswg.org/css-overflow-5/#scroll-marker"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-actions.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <style> |
| body { |
| margin: 0; |
| } |
| |
| #scroller { |
| position: absolute; |
| top: 100px; |
| width: 600px; |
| height: 300px; |
| overflow: auto; |
| scroll-marker-group: before; |
| white-space: nowrap; |
| } |
| |
| #scroller div { |
| display: inline-block; |
| width: 600px; |
| height: 270px; |
| } |
| |
| #scroller::scroll-marker-group { |
| position: absolute; |
| top: 0; |
| display: flex; |
| height: 20px; |
| width: 40px; |
| } |
| |
| .sm::scroll-marker { |
| content: ""; |
| width: 100px; |
| height: 20px; |
| display: inline-block; |
| } |
| </style> |
| <div id="scroller"> |
| <div id="originatingElement" class="sm"></div> |
| <div></div> |
| </div> |
| <script> |
| let event = null; |
| |
| originatingElement.addEventListener('click', (e) => { |
| event = e; |
| }); |
| |
| promise_test(async t => { |
| // Click on ::scroll-marker |
| const scrollMarkerX = 15; |
| const scrollMarkerY = 15; |
| await new test_driver.Actions() |
| .pointerMove(scrollMarkerX, scrollMarkerY) |
| .pointerDown() |
| .pointerUp() |
| .send(); |
| assert_equals(event.target, originatingElement, "event.target for ::scroll-marker click is its originating element"); |
| originatingElement.classList.remove("sm"); |
| assert_equals(event.target, originatingElement, "event.target for detached ::scroll-marker click is its originating element"); |
| }); |
| </script> |