summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/util/wheel.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-15 11:05:08 -0400
committerJules Laplace <jules@okfoc.us>2014-10-15 11:05:08 -0400
commit72ea86e603793ac17a9113ab031d31b369f74a4f (patch)
treedd69786d1d3ee5f62c107706d8186336fb9edc24 /public/assets/javascripts/rectangles/util/wheel.js
parent32f5f24b8b09998a03c88f786507ba4d58397fc7 (diff)
parentf0c06d7e9fb004e840821b502a6c46214f6757fd (diff)
merge
Diffstat (limited to 'public/assets/javascripts/rectangles/util/wheel.js')
-rw-r--r--public/assets/javascripts/rectangles/util/wheel.js25
1 files changed, 16 insertions, 9 deletions
diff --git a/public/assets/javascripts/rectangles/util/wheel.js b/public/assets/javascripts/rectangles/util/wheel.js
index 6836772..712d470 100644
--- a/public/assets/javascripts/rectangles/util/wheel.js
+++ b/public/assets/javascripts/rectangles/util/wheel.js
@@ -21,37 +21,44 @@ function wheel (opt) {
val: 0,
})
- opt.el.addEventListener('mousewheel', onMouseWheel, false);
+ opt.el.addEventListener('wheel', onMouseWheel, false);
+// opt.el.addEventListener('mousewheel', onMouseWheel, false);
opt.el.addEventListener('DOMMouseScroll', onMouseWheel, false);
function onMouseWheel (e) {
if (opt.locked) {
return
}
+
if (! opt.propagate) {
e.stopPropagation()
e.preventDefault()
}
- var delta = 0;
+ var deltaX = 0, deltaY = 0;
// WebKit
- if ( event.wheelDeltaY ) {
- delta -= event.wheelDeltaY * opt.ratio
+ if ( event.deltaY ) {
+ deltaY -= event.deltaY * opt.ratio
+ deltaX -= event.deltaX * opt.ratio
+ }
+ else if ( event.wheelDeltaY ) {
+ deltaY -= event.wheelDeltaY * opt.ratio
+ deltaX -= event.wheelDeltaX * opt.ratio
}
// Opera / Explorer 9
else if ( event.wheelDelta ) {
- delta -= event.wheelDelta * opt.ratio
+ deltaY -= event.wheelDelta * opt.ratio
}
// Firefox
else if ( event.detail ) {
- delta += event.detail * 2
+ deltaY += event.detail * 2
}
- if (! opt.reversible && delta < 0) return;
+ if (! opt.reversible && (deltaY < 0 && deltaX < 0)) return;
- opt.val = clamp(opt.val + delta, opt.min, opt.max)
+ // opt.val = clamp(opt.val + delta, opt.min, opt.max)
- opt.update(e, opt.val, delta)
+ opt.update(e, deltaY, deltaX)
}
opt.lock = function(){ opt.locked = true }