Add new maxDelta property to MouseWheelZoom constructor
This commit is contained in:
@@ -8,13 +8,6 @@ import Interaction, {zoomByDelta} from './Interaction.js';
|
|||||||
import {clamp} from '../math.js';
|
import {clamp} from '../math.js';
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Maximum mouse wheel delta.
|
|
||||||
* @type {number}
|
|
||||||
*/
|
|
||||||
const MAX_DELTA = 1;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @enum {string}
|
* @enum {string}
|
||||||
*/
|
*/
|
||||||
@@ -30,6 +23,7 @@ export const Mode = {
|
|||||||
* takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a
|
* takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a
|
||||||
* boolean to indicate whether that event should be handled. Default is
|
* boolean to indicate whether that event should be handled. Default is
|
||||||
* {@link module:ol/events/condition~always}.
|
* {@link module:ol/events/condition~always}.
|
||||||
|
* @property {number} [maxDelta=1] Maximum mouse wheel delta.
|
||||||
* @property {number} [duration=250] Animation duration in milliseconds.
|
* @property {number} [duration=250] Animation duration in milliseconds.
|
||||||
* @property {number} [timeout=80] Mouse wheel timeout duration in milliseconds.
|
* @property {number} [timeout=80] Mouse wheel timeout duration in milliseconds.
|
||||||
* @property {boolean} [useAnchor=true] Enable zooming using the mouse's
|
* @property {boolean} [useAnchor=true] Enable zooming using the mouse's
|
||||||
@@ -65,6 +59,12 @@ class MouseWheelZoom extends Interaction {
|
|||||||
*/
|
*/
|
||||||
this.lastDelta_ = 0;
|
this.lastDelta_ = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {number}
|
||||||
|
*/
|
||||||
|
this.maxDelta_ = options.maxDelta !== undefined ? options.maxDelta : 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {number}
|
* @type {number}
|
||||||
@@ -235,8 +235,7 @@ class MouseWheelZoom extends Interaction {
|
|||||||
if (view.getAnimating()) {
|
if (view.getAnimating()) {
|
||||||
view.cancelAnimations();
|
view.cancelAnimations();
|
||||||
}
|
}
|
||||||
const maxDelta = MAX_DELTA;
|
const delta = clamp(this.totalDelta_, -this.maxDelta_, this.maxDelta_);
|
||||||
const delta = clamp(this.totalDelta_, -maxDelta, maxDelta);
|
|
||||||
zoomByDelta(view, -delta, this.lastAnchor_, this.duration_);
|
zoomByDelta(view, -delta, this.lastAnchor_, this.duration_);
|
||||||
this.mode_ = undefined;
|
this.mode_ = undefined;
|
||||||
this.totalDelta_ = 0;
|
this.totalDelta_ = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user