scroll-button-event-target.html (1630B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>CSS Overflow: event.target and event.currentTarget for ::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 #scroller::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"> 40 <div></div> 41 <div></div> 42 </div> 43 <script> 44 let target = null; 45 let currentTarget = null; 46 47 scroller.addEventListener('click', (e) => { 48 target = e.target; 49 currentTarget = e.currentTarget; 50 e.stopPropagation(); 51 }); 52 53 promise_test(async t => { 54 // Click on ::scroll-button 55 const scrollButtonX = 15; 56 const scrollButtonY = 15; 57 await new test_driver.Actions() 58 .pointerMove(scrollButtonX, scrollButtonY) 59 .pointerDown() 60 .pointerUp() 61 .send(); 62 assert_equals(currentTarget, scroller, "event.currentTarget for ::scroll-button click is scroller"); 63 assert_equals(target, scroller, "event.target for ::scroll-button click is scroller"); 64 }); 65 </script>