diff --git a/source/js/viewer-core.js b/source/js/viewer-core.js index 851fc9ba..17ffb01f 100644 --- a/source/js/viewer-core.js +++ b/source/js/viewer-core.js @@ -143,7 +143,7 @@ export default class ViewerCore viewport: null, // Object caching the viewport dimensions viewportElement: null, viewportObject: null, - zoomDuration: 600 + zoomDuration: 400 }; this.settings = createSettingsView([options, this.viewerState]); @@ -700,6 +700,17 @@ export default class ViewerCore } }); + // Deactivate zoom buttons while zooming + let zoomInButton = document.getElementById(this.settings.selector + 'zoom-in-button'); + let zoomOutButton = document.getElementById(this.settings.selector + 'zoom-out-button'); + zoomInButton.disabled = true; + zoomOutButton.disabled = true; + setTimeout(() => + { + zoomInButton.disabled = false; + zoomOutButton.disabled = false; + }, this.settings.zoomDuration); + // Send off the zoom level did change event. this.publish("ZoomLevelDidChange", newZoomLevel); diff --git a/test/navigation_test.js b/test/navigation_test.js index 6f284f5d..60fb69f2 100644 --- a/test/navigation_test.js +++ b/test/navigation_test.js @@ -153,18 +153,10 @@ describe('Navigation', function () { Diva.Events.subscribe('ViewerDidLoad', function (settings) { - for (var i = 0; i < 5; i++) - { - el(settings.selector + 'zoom-out-button').click(); - } - - assertZoomIs(0, this, 'zoom buttons'); - - for (i = 0; i < 5; i++) - { - el(settings.selector + 'zoom-in-button').click(); - } + el(settings.selector + 'zoom-out-button').click(); + assertZoomIs(4, this, 'zoom buttons'); + el(settings.selector + 'zoom-in-button').click(); assertZoomIs(5, this, 'zoom buttons'); done();