单击地图时,阻止Leaflet .flyTo()动画停止

时间:2017-06-14 13:52:07

标签: leaflet

Leaflet的map.flyTo()方法的默认行为是,如果用户在flyTo动画期间点击地图,则动画将停止。

我想保持地图动画,直到达到所需的视图,无论用户互动如何。

有没有办法在动画期间禁用地图鼠标/触摸交互?

2 个答案:

答案 0 :(得分:0)

  

有没有办法在动画期间禁用地图鼠标/触摸交互?

您可能希望暂时禁用交互处理程序,如下所示:

map.dragging.disable();
map.doubleClickZoom.disable();
map.scrollWheelZoom.disable();

...

map.dragging.enable();
map.doubleClickZoom.enable();
map.scrollWheelZoom.enable();

检查http://leafletjs.com/reference-1.0.3.html#map-handlers处的完整列表以及其他文档。

答案 1 :(得分:0)

在触发flyTo()方法的函数中使用@IvanSanchez描述的方法(让我们调用这个函数“triggersFlyTo()”)和'moveend'事件。我希望以下代码解决您的问题:

//stop user interaction when flyTo() is fired

function triggersFlyTo() {
...
map.dragging.disable();
map.doubleClickZoom.disable();
map.scrollWheelZoom.disable();
map.flyTo(...)
...
}


//restart user interaction when the "flying" stops. 

map.on('moveend', function() {
map.dragging.enable();
map.doubleClickZoom.enable();
map.scrollWheelZoom.enable();
}