aboutsummaryrefslogtreecommitdiff
path: root/src_js/dragger.js
diff options
context:
space:
mode:
Diffstat (limited to 'src_js/dragger.js')
-rw-r--r--src_js/dragger.js28
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);
+});