use the mousewheel handler

This commit is contained in:
Éric Lemoine
2012-07-09 09:28:56 +02:00
parent 2c61e16b55
commit 9e693f29c5
2 changed files with 17 additions and 5 deletions

View File

@@ -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(

View File

@@ -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;