Sha256: 920ecc20c72a4b14a74db6357d18a67c9b7cecfd3055d468063ab410cea53b7a
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
/* * L.Handler.ScrollWheelZoom is used internally by L.Map to enable mouse scroll wheel zooming on the map. */ L.Map.ScrollWheelZoom = L.Handler.extend({ addHooks: function () { L.DomEvent.addListener(this._map._container, 'mousewheel', this._onWheelScroll, this); this._delta = 0; }, removeHooks: function () { L.DomEvent.removeListener(this._map._container, 'mousewheel', this._onWheelScroll); }, _onWheelScroll: function (e) { var delta = L.DomEvent.getWheelDelta(e); this._delta += delta; this._lastMousePos = this._map.mouseEventToContainerPoint(e); clearTimeout(this._timer); this._timer = setTimeout(L.Util.bind(this._performZoom, this), 50); L.DomEvent.preventDefault(e); }, _performZoom: function () { var map = this._map, delta = Math.round(this._delta), zoom = map.getZoom(); delta = Math.max(Math.min(delta, 4), -4); delta = map._limitZoom(zoom + delta) - zoom; this._delta = 0; if (!delta) { return; } var newCenter = this._getCenterForScrollWheelZoom(this._lastMousePos, delta), newZoom = zoom + delta; map.setView(newCenter, newZoom); }, _getCenterForScrollWheelZoom: function (mousePos, delta) { var map = this._map, centerPoint = map.getPixelBounds().getCenter(), viewHalf = map.getSize().divideBy(2), centerOffset = mousePos.subtract(viewHalf).multiplyBy(1 - Math.pow(2, -delta)), newCenterPoint = centerPoint.add(centerOffset); return map.unproject(newCenterPoint, map._zoom, true); } });
Version data entries
3 entries across 3 versions & 1 rubygems