Merge pull request #119 from noraesae/mousewheel-speed

Change mousewheel delta calculation logic.
This commit is contained in:
Hyunje Alex Jun 2014-04-02 00:26:06 +09:00
commit 9a589639b0

View File

@ -277,10 +277,16 @@
// bind handlers
var bindMouseWheelHandler = function () {
// FIXME: Backward compatibility.
// After e.deltaFactor applied, wheelSpeed should have smaller value.
// Currently, there's no way to change the settings after the scrollbar initialized.
// But if the way is implemented in the future, wheelSpeed should be reset.
settings.wheelSpeed /= 10;
var shouldPrevent = false;
$this.bind('mousewheel' + eventClassName, function (e, deprecatedDelta, deprecatedDeltaX, deprecatedDeltaY) {
var deltaX = e.deltaX || deprecatedDeltaX,
deltaY = e.deltaY || deprecatedDeltaY;
var deltaX = e.deltaX * e.deltaFactor || deprecatedDeltaX,
deltaY = e.deltaY * e.deltaFactor || deprecatedDeltaY;
if (!settings.useBothWheelAxes) {
// deltaX will only be used for horizontal scrolling and deltaY will
@ -343,23 +349,23 @@
switch (e.which) {
case 37: // left
deltaX = -3;
deltaX = -30;
break;
case 38: // up
deltaY = 3;
deltaY = 30;
break;
case 39: // right
deltaX = 3;
deltaX = 30;
break;
case 40: // down
deltaY = -3;
deltaY = -30;
break;
case 33: // page up
deltaY = 9;
deltaY = 90;
break;
case 32: // space bar
case 34: // page down
deltaY = -9;
deltaY = -90;
break;
case 35: // end
deltaY = -containerHeight;
@ -371,8 +377,8 @@
return;
}
$this.scrollTop($this.scrollTop() - (deltaY * settings.wheelSpeed));
$this.scrollLeft($this.scrollLeft() + (deltaX * settings.wheelSpeed));
$this.scrollTop($this.scrollTop() - deltaY);
$this.scrollLeft($this.scrollLeft() + deltaX);
shouldPrevent = shouldPreventDefault(deltaX, deltaY);
if (shouldPrevent) {