mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-23 13:46:09 +03:00
Viewport.zoomTo and zoomBy now respect ref point even when immediately = true
This commit is contained in:
parent
458bbd61b6
commit
de9fa90fac
@ -765,7 +765,9 @@ $.Viewport.prototype = {
|
|||||||
null;
|
null;
|
||||||
|
|
||||||
if ( immediately ) {
|
if ( immediately ) {
|
||||||
this.zoomSpring.resetTo( zoom );
|
this._updateZoom({
|
||||||
|
resetTo: zoom
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
this.zoomSpring.springTo( zoom );
|
this.zoomSpring.springTo( zoom );
|
||||||
}
|
}
|
||||||
@ -891,27 +893,7 @@ $.Viewport.prototype = {
|
|||||||
* @function
|
* @function
|
||||||
*/
|
*/
|
||||||
update: function() {
|
update: function() {
|
||||||
var oldZoomPixel,
|
this._updateZoom();
|
||||||
newZoomPixel,
|
|
||||||
deltaZoomPixels,
|
|
||||||
deltaZoomPoints;
|
|
||||||
|
|
||||||
if (this.zoomPoint) {
|
|
||||||
oldZoomPixel = this.pixelFromPoint( this.zoomPoint, true );
|
|
||||||
}
|
|
||||||
|
|
||||||
this.zoomSpring.update();
|
|
||||||
|
|
||||||
if (this.zoomPoint && this.zoomSpring.current.value != this._oldZoom) {
|
|
||||||
newZoomPixel = this.pixelFromPoint( this.zoomPoint, true );
|
|
||||||
deltaZoomPixels = newZoomPixel.minus( oldZoomPixel );
|
|
||||||
deltaZoomPoints = this.deltaPointsFromPixels( deltaZoomPixels, true );
|
|
||||||
|
|
||||||
this.centerSpringX.shiftBy( deltaZoomPoints.x );
|
|
||||||
this.centerSpringY.shiftBy( deltaZoomPoints.y );
|
|
||||||
} else {
|
|
||||||
this.zoomPoint = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.centerSpringX.update();
|
this.centerSpringX.update();
|
||||||
this.centerSpringY.update();
|
this.centerSpringY.update();
|
||||||
@ -927,6 +909,35 @@ $.Viewport.prototype = {
|
|||||||
return changed;
|
return changed;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// private
|
||||||
|
_updateZoom: function(options) {
|
||||||
|
var oldZoomPixel,
|
||||||
|
newZoomPixel,
|
||||||
|
deltaZoomPixels,
|
||||||
|
deltaZoomPoints;
|
||||||
|
|
||||||
|
if (this.zoomPoint) {
|
||||||
|
oldZoomPixel = this.pixelFromPoint( this.zoomPoint, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options && options.resetTo) {
|
||||||
|
this.zoomSpring.resetTo(options.resetTo);
|
||||||
|
} else {
|
||||||
|
this.zoomSpring.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.zoomPoint && this.zoomSpring.current.value != this._oldZoom) {
|
||||||
|
newZoomPixel = this.pixelFromPoint( this.zoomPoint, true );
|
||||||
|
deltaZoomPixels = newZoomPixel.minus( oldZoomPixel );
|
||||||
|
deltaZoomPoints = this.deltaPointsFromPixels( deltaZoomPixels, true );
|
||||||
|
|
||||||
|
this.centerSpringX.shiftBy( deltaZoomPoints.x );
|
||||||
|
this.centerSpringY.shiftBy( deltaZoomPoints.y );
|
||||||
|
} else {
|
||||||
|
this.zoomPoint = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a delta (translation vector) from viewport coordinates to pixels
|
* Convert a delta (translation vector) from viewport coordinates to pixels
|
||||||
* coordinates. This method does not take rotation into account.
|
* coordinates. This method does not take rotation into account.
|
||||||
|
Loading…
Reference in New Issue
Block a user