diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-03-12 01:42:41 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-03-12 01:42:41 +0100 |
| commit | 6a83c9b84f49d541f39726712b8a0331590555d2 (patch) | |
| tree | 51f5f29e35fa3af1f483ce8b1bb9829d281c13f0 /client/lib/mouse.js | |
| parent | 48f66e675f632d4ae837b3f8474569b3cfbceb56 (diff) | |
basic linear spectral manipulation!
Diffstat (limited to 'client/lib/mouse.js')
| -rw-r--r-- | client/lib/mouse.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/client/lib/mouse.js b/client/lib/mouse.js index 990b8ef..809f209 100644 --- a/client/lib/mouse.js +++ b/client/lib/mouse.js @@ -15,6 +15,7 @@ mouse.register({ let fns = { down: [], move: [], + drag: [], up: [], } @@ -27,6 +28,7 @@ export default { register: (callbacks) => { callbacks.down && fns.down.push(callbacks.down) callbacks.move && fns.move.push(callbacks.move) + callbacks.drag && fns.drag.push(callbacks.drag) callbacks.up && fns.up.push(callbacks.up) } } @@ -36,17 +38,20 @@ let x, y, dragging = false function down(e){ x = e.pageX y = e.pageY + x /= window.innerWidth + y /= window.innerHeight dragging = true fns.down.map(f => f(x, y)) } function move(e){ - if (!dragging) return let dx = e.pageX - x let dy = e.pageY - y x = e.pageX y = e.pageY - dragging = true + x /= window.innerWidth + y /= window.innerHeight fns.move.map(f => f(x, y, dx, dy)) + dragging && fns.drag.map(f => f(x, y, dx, dy)) } function up(e){ dragging = false @@ -61,7 +66,7 @@ function touch(f){ } document.body.addEventListener("mousedown", down) document.body.addEventListener("mousemove", move) -document.body.addEventListener("mouseup", up) +window.addEventListener("mouseup", up) document.body.addEventListener("touchstart", touch(down)) document.body.addEventListener("touchmove", touch(move)) document.body.addEventListener("touchup", touch(up)) |
