Возможно ли в Leaflet, что всплывающее окно открывается при наведении мыши, а не при нажатии?
Это работает только для одного маркера за раз, но мне нужно это для большего количества маркеров:
marker.on('mouseover', function(e){
marker.openPopup();
});
Ответы:
Если вам нужно показать всплывающее окно для маркера, вы можете использовать метод markers bindPopup.
Тогда у вас будет больше контроля, и он будет автоматически привязан к вашему маркеру.
В приведенном ниже примере вы можете отобразить всплывающее окно при наведении мыши на пользователя и скрыть его при наведении мыши на пользователя:
Примечание. Вы можете столкнуться с проблемами с закрытием всплывающих окон при наведении мыши на само всплывающее окно, поэтому вам может потребоваться настроить привязку всплывающих окон (см. Настройки всплывающих окон), чтобы показывать всплывающие окна немного дальше от самого маркера, чтобы он не исчезнуть слишком легко.
источник
источник
Это не специфичная для Leaflet проблема, а скорее вопрос Javascript.
Сохраните свои маркеры в коллекции, а затем привяжите
openPopup
к'mouseover'
событию для всех из них.Например, с массивом:
источник
L.MarkerCluster
экземпляре ... Мой ответ ясно показывает, как связать коллекцию всплывающих окон при наведении курсора Если вы хотите узнать, как получить коллекцию из кластера, это нечто другое.Если вы используете Leaflet 1.3.x, привязка всплывающей подсказки является встроенным методом.
http://leafletjs.com/reference-1.3.0.html#tooltip
источник
bindTooltip()
работает на отдельных маркерах тоже.С точки зрения наличия решения, которое работает «для большего числа маркеров», это то, что я делаю для каждого слоя точечных данных, загружаемых из GeoJSON:
источник