| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta name="viewport" content="width=device-width, minimum-scale=1.0"> | |
| <style> | |
| .target { | |
| width: 100px; | |
| height: 100px; | |
| background-color: dodgerblue; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="target" id="first" aria-label="first"></div> | |
| <p>Line Break</p> | |
| <div class="target" id="second" aria-label="second"></div> | |
| <div class="target" id="offscreen" aria-label="offscreen" style="position:relative; top:200vh"></div> | |
| </body> | |
| <script> | |
| let event_log = []; | |
| // Log all mouse events in the format: Event[Element#ID] | |
| const log_handler = | |
| e => event_log.push(`${e.type}[${e.target.tagName}#${e.target.id}]`); | |
| const targets = document.querySelectorAll('.target'); | |
| for (let t of targets) { | |
| t.addEventListener('click', log_handler); | |
| t.addEventListener('mousedown', log_handler); | |
| t.addEventListener('mousemove', log_handler); | |
| t.addEventListener('mouseup', log_handler); | |
| t.addEventListener('mouseenter', log_handler); | |
| t.addEventListener('mouseleave', log_handler); | |
| } | |
| </script> | |
| </html> |