diff --git a/src/ol/Map.js b/src/ol/Map.js index 64fe7cea0e..23fbd6b9b3 100644 --- a/src/ol/Map.js +++ b/src/ol/Map.js @@ -504,12 +504,24 @@ ol.Map.prototype.setViewport = function() { 'class': 'ol-viewport', 'style': 'width:100%;height:100%;top:0;left:0;position:relative;overflow:hidden' })); - var dragHandler = new ol.handler.Drag(this, this.viewport_); - this.registerDisposable(dragHandler); + this.initHandlers(); } goog.dom.appendChild(this.container_, this.viewport_); }; +/** + * Init the map event handlers. + */ +ol.Map.prototype.initHandlers = function() { + goog.asserts.assert(!goog.isNull(this.viewport_)); + + var dragHandler = new ol.handler.Drag(this, this.viewport_); + this.registerDisposable(dragHandler); + + var mouseWheelHandler = new ol.handler.MouseWheel(this, this.viewport_); + this.registerDisposable(mouseWheelHandler); +}; + ol.Map.prototype.createRenderer = function() { var Renderer = ol.renderer.MapRenderer.pickRendererType( diff --git a/src/ol/control/Navigation.js b/src/ol/control/Navigation.js index 64ac0737cf..d38cecdc9b 100644 --- a/src/ol/control/Navigation.js +++ b/src/ol/control/Navigation.js @@ -38,7 +38,7 @@ ol.control.Navigation.prototype.activate = function() { // navigation control. var target = this.map_.getParentEventTarget(); goog.events.listen(target, 'drag', this.moveMap, false, this); - goog.events.listen(target, 'scroll', this.zoomMap, false, this); + goog.events.listen(target, 'mousewheel', this.zoomMap, false, this); } return active; }; @@ -49,7 +49,7 @@ ol.control.Navigation.prototype.deactivate = function() { if (inactive) { var target = this.map_.getParentEventTarget(); goog.events.unlisten(target, 'drag', this.moveMap, false, this); - goog.events.unlisten(target, 'scroll', this.zoomMap, false, this); + goog.events.unlisten(target, 'mousewheel', this.zoomMap, false, this); } return inactive; }; @@ -76,7 +76,7 @@ ol.control.Navigation.prototype.zoomMap = function(evt) { var map = me.map_, step = evt.deltaY / Math.abs(evt.deltaY); - map.setZoom(map.getZoom()-step, map.getEvents().getPointerPosition(evt)); + map.setZoom(map.getZoom()-step, evt.position); // We don't want the page to scroll. evt.preventDefault(); return false;