mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-02-16 14:53:14 +03:00
Merge pull request #754 from fs-webdev/master
Added a patch to help slow down the scroll devices that fire too fast…
This commit is contained in:
commit
db5949c2d7
@ -255,6 +255,11 @@
|
||||
* @property {Boolean} [preserveImageSizeOnResize=false]
|
||||
* Set to true to have the image size preserved when the viewer is resized. This requires autoResize=true (default).
|
||||
*
|
||||
* @property {Number} [minScrollDeltaTime=50]
|
||||
* Number of milliseconds between canvas-scroll events. This value helps normalize the rate of canvas-scroll
|
||||
* events between different devices, causing the faster devices to slow down enough to make the zoom control
|
||||
* more manageable.
|
||||
*
|
||||
* @property {Number} [pixelsPerWheelLine=40]
|
||||
* For pixel-resolution scrolling devices, the number of pixels equal to one scroll line.
|
||||
*
|
||||
@ -1003,6 +1008,7 @@ if (typeof define === 'function' && define.amd) {
|
||||
pixelsPerWheelLine: 40,
|
||||
autoResize: true,
|
||||
preserveImageSizeOnResize: false, // requires autoResize=true
|
||||
minScrollDeltaTime: 50,
|
||||
|
||||
//DEFAULT CONTROL SETTINGS
|
||||
showSequenceControl: true, //SEQUENCE
|
||||
|
@ -203,6 +203,8 @@ $.Viewer = function( options ) {
|
||||
this._loadQueue = [];
|
||||
this.currentOverlays = [];
|
||||
|
||||
this._lastScrollTime = $.now(); // variable used to help normalize the scroll event speed of different devices
|
||||
|
||||
//Inherit some behaviors and properties
|
||||
$.EventSource.call( this );
|
||||
|
||||
@ -2738,7 +2740,17 @@ function onCanvasPinch( event ) {
|
||||
|
||||
function onCanvasScroll( event ) {
|
||||
var gestureSettings,
|
||||
factor;
|
||||
factor,
|
||||
thisScrollTime,
|
||||
deltaScrollTime;
|
||||
|
||||
/* Certain scroll devices fire the scroll event way too fast so we are injecting a simple adjustment to keep things
|
||||
* partially normalized. If we have already fired an event within the last 'minScrollDelta' milliseconds we skip
|
||||
* this one and wait for the next event. */
|
||||
thisScrollTime = $.now();
|
||||
deltaScrollTime = thisScrollTime - this._lastScrollTime;
|
||||
if (deltaScrollTime > this.minScrollDeltaTime) {
|
||||
this._lastScrollTime = thisScrollTime;
|
||||
|
||||
if ( !event.preventDefaultAction && this.viewport ) {
|
||||
gestureSettings = this.gestureSettingsByDeviceType( event.pointerType );
|
||||
@ -2772,12 +2784,15 @@ function onCanvasScroll( event ) {
|
||||
shift: event.shift,
|
||||
originalEvent: event.originalEvent
|
||||
});
|
||||
|
||||
if (gestureSettings && gestureSettings.scrollToZoom) {
|
||||
//cancels event
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false; // We are swallowing this event
|
||||
}
|
||||
}
|
||||
|
||||
function onContainerEnter( event ) {
|
||||
THIS[ this.hash ].mouseInside = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user