Используя пример с веб-сайта Leaflet, обратите внимание, где L.Control
создается экземпляр объекта info
; это <div>
поле в правом верхнем углу, связанное с парящим взаимодействием карты. Вот где это определено в index.html
примере Leaflet:
// control that shows state info on hover
var info = L.control();
info.onAdd = function (map) {
this._div = L.DomUtil.create('div', 'info');
this.update();
return this._div;
};
info.update = function (props) {
this._div.innerHTML = '<h4>US Population Density</h4>' + (props ?
'<b>' + props.name + '</b><br />' + props.density + ' people / mi<sup>2</sup>'
: 'Hover over a state');
};
info.addTo(map);
Чтобы отключить перетаскивание, когда курсор пользователя находится внутри этого <div>
поля , добавьте прослушиватель событий в HTMLElement
( <div>
элемент), который содержит L.Control
объект:
// Disable dragging when user's cursor enters the element
info.getContainer().addEventListener('mouseover', function () {
map.dragging.disable();
});
// Re-enable dragging when user's cursor leaves the element
info.getContainer().addEventListener('mouseout', function () {
map.dragging.enable();
});
Напомним, что map
был определен как L.Map
экземпляр ранее.