0
我一直在嘗試使用不同的策略來製作Leaflet供電的地圖平移滾動,就像它在拖動時一樣,而不是縮放它。我可以通過更高級別的DOM API來完成這項工作,聽取滾動事件和設置中心的內容,但它既不感覺良好,也不會與拖動地圖的平滑性相媲美。有沒有什麼辦法通過滾動來移動地圖,通過拖動來感覺平滑?滾動移動傳單地圖
我一直在嘗試使用不同的策略來製作Leaflet供電的地圖平移滾動,就像它在拖動時一樣,而不是縮放它。我可以通過更高級別的DOM API來完成這項工作,聽取滾動事件和設置中心的內容,但它既不感覺良好,也不會與拖動地圖的平滑性相媲美。有沒有什麼辦法通過滾動來移動地圖,通過拖動來感覺平滑?滾動移動傳單地圖
您可以修改L.Map.ScrollWheelZoom
處理程序來執行地圖平移而不是縮放。
L.Map.ScrollWheelPan = L.Map.ScrollWheelZoom.extend({
_performZoom: function() {
var map = this._map,
delta = this._delta;
map.stop(); // stop panning and fly animations if any
delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta);
delta = Math.max(Math.min(delta, 4), -4);
this._delta = 0;
this._startTime = null;
if (!delta) {
return;
}
map.panBy([0, -delta * 40]); // Adjust 40 to your feeling.
}
});
L.Map.addInitHook('addHandler', 'scrollWheelPan', L.Map.ScrollWheelPan);
var map = L.map("map", {
scrollWheelZoom: false,
scrollWheelPan: true
});
您的解決方案只允許向上或向下滾動,但使用'賽事#wheelDeltaX'和'事件#wheelDeltaY',有可能使泛在任何方向滾動,並感覺非常流暢。感謝您的想法,它幫助了很多! –