Path: blob/main/puppet/test/assets/input/mouse-helper.js
2631 views
// This injects a box into the page that moves with the mouse;1// Useful for debugging2(function(){3const box = document.createElement('div');4box.classList.add('mouse-helper');5const styleElement = document.createElement('style');6styleElement.innerHTML = `7.mouse-helper {8pointer-events: none;9position: absolute;10top: 0;11left: 0;12width: 20px;13height: 20px;14background: rgba(0,0,0,.4);15border: 1px solid white;16border-radius: 10px;17margin-left: -10px;18margin-top: -10px;19transition: background .2s, border-radius .2s, border-color .2s;20}21.mouse-helper.button-1 {22transition: none;23background: rgba(0,0,0,0.9);24}25.mouse-helper.button-2 {26transition: none;27border-color: rgba(0,0,255,0.9);28}29.mouse-helper.button-3 {30transition: none;31border-radius: 4px;32}33.mouse-helper.button-4 {34transition: none;35border-color: rgba(255,0,0,0.9);36}37.mouse-helper.button-5 {38transition: none;39border-color: rgba(0,255,0,0.9);40}41`;42document.head.appendChild(styleElement);43document.body.appendChild(box);44document.addEventListener('mousemove', event => {45box.style.left = `${event.pageX }px`;46box.style.top = `${event.pageY }px`;47updateButtons(event.buttons);48}, true);49document.addEventListener('mousedown', event => {50updateButtons(event.buttons);51box.classList.add(`button-${ event.which}`);52}, true);53document.addEventListener('mouseup', event => {54updateButtons(event.buttons);55box.classList.remove(`button-${ event.which}`);56}, true);57function updateButtons(buttons) {58for (let i = 0; i < 5; i++)59box.classList.toggle(`button-${ i}`, buttons & (1 << i));60}61})();626364