scroll-button-disposed-event-target.html (1571B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>CSS Overflow: event.target for detached ::scroll-button is scroller</title> 4 <link rel="help" href="https://drafts.csswg.org/css-overflow-5/#scroll-buttons"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-actions.js"></script> 9 <script src="/resources/testdriver-vendor.js"></script> 10 <style> 11 body { 12 margin: 0; 13 } 14 15 #scroller { 16 position: absolute; 17 top: 100px; 18 width: 600px; 19 height: 300px; 20 overflow: auto; 21 white-space: nowrap; 22 } 23 24 #scroller div { 25 display: inline-block; 26 width: 600px; 27 height: 200px; 28 } 29 30 .sbtn::scroll-button(inline-end) { 31 position: absolute; 32 top: 0; 33 left: 0; 34 content: ""; 35 width: 100px; 36 height: 20px; 37 } 38 </style> 39 <div id="scroller" class="sbtn"> 40 <div></div> 41 <div></div> 42 </div> 43 <script> 44 let event = null; 45 46 scroller.addEventListener('click', (e) => { 47 event = e; 48 }); 49 50 promise_test(async t => { 51 // Click on ::scroll-button 52 const scrollButtonX = 15; 53 const scrollButtonY = 15; 54 await new test_driver.Actions() 55 .pointerMove(scrollButtonX, scrollButtonY) 56 .pointerDown() 57 .pointerUp() 58 .send(); 59 assert_equals(event.target, scroller, "event.target for ::scroll-button click is scroller"); 60 scroller.classList.remove("sbtn"); 61 assert_equals(event.target, scroller, "event.target for detached ::scroll-button click is scroller"); 62 }); 63 </script>