| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta name="viewport" content="width=device-width, minimum-scale=1.0"> | |
| <title>Test Page</title> | |
| <style> | |
| body { | |
| /* Make page scrollable. */ | |
| width: 300vw; | |
| height: 300vh; | |
| } | |
| #range { | |
| width: 400px; | |
| } | |
| #offscreenRange { | |
| position: absolute; | |
| left: 8px; | |
| top: 200vh; | |
| } | |
| #dragLogger { | |
| width: 300px; | |
| height: 300px; | |
| background-color: thistle; | |
| position: absolute; | |
| left: 500px; | |
| top: 300px; | |
| } | |
| #pointerLogger { | |
| width: 30px; | |
| height: 30px; | |
| background-color: burlywood; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <input id="range" type="range" min="0" max="100" value="0"> | |
| <div id="dragLogger"></div> | |
| <input id="offscreenRange" type="range" min="0" max="100" value="0"> | |
| <div id="pointerLogger"></div> | |
| <script> | |
| let event_log = []; | |
| let log_handler = | |
| e => event_log.push(`${e.type}[${e.clientX},${e.clientY}]`); | |
| const el = document.getElementById('dragLogger'); | |
| el.addEventListener('mousedown', log_handler); | |
| el.addEventListener('mousemove', log_handler); | |
| el.addEventListener('mouseup', log_handler); | |
| let pointer_log = []; | |
| let pointer_handler = e => pointer_log.push(`${e.type}[${e.clientX},${e.clientY}]: ${e.buttons}`); | |
| const pl = document.getElementById('pointerLogger'); | |
| pl.addEventListener('pointerdown', pointer_handler); | |
| pl.addEventListener('pointermove', pointer_handler); | |
| pl.addEventListener('pointerup', pointer_handler); | |
| pl.addEventListener('gotpointercapture', pointer_handler); | |
| pl.addEventListener('pointerdown', e=> pl.setPointerCapture(e.pointerId)); | |
| </script> | |
| </body> | |
| </html> |