diff options
Diffstat (limited to 'src_js/dragger.js')
| -rw-r--r-- | src_js/dragger.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src_js/dragger.js b/src_js/dragger.js new file mode 100644 index 0000000..e591be6 --- /dev/null +++ b/src_js/dragger.js @@ -0,0 +1,28 @@ + + +const draggers = []; + + +export function mouseDownHandler(createMoveHandlerCb) { + return evt => { + draggers.push({ + initX: evt.screenX, + initY: evt.screenY, + moveHandler: createMoveHandlerCb(evt) + }); + }; +} + + +document.addEventListener('mousemove', evt => { + for (let dragger of draggers) { + const dx = evt.screenX - dragger.initX; + const dy = evt.screenY - dragger.initY; + dragger.moveHandler(evt, dx, dy); + } +}); + + +document.addEventListener('mouseup', evt => { + draggers.splice(0); +}); |
