Alguém sabe como suprimir o panning quando você clica e arrasta por cima de uma caixa div incorporada no próprio mapa?
Por exemplo , aqui , quando você clica e arrasta sobre a parte superior da legenda, o mapa arrasta consigo. Eu quero suprimir essa função. Estou ciente se esta técnica, mas quero saber se esta é a única maneira:
map.dragging.disable();
Respostas:
Usando o exemplo do site do Leaflet, observe onde o
L.Control
objeto é instanciado comoinfo
; esta é a<div>
caixa no canto superior direito associada à interação instantânea do mapa. Aqui é onde é definido noindex.html
exemplo do folheto:Para desativar o arrasto quando o cursor de um usuário estiver dentro desta
<div>
caixa , adicione um ouvinte de evento aoHTMLElement
(um<div>
elemento) que contém oL.Control
objeto:Lembre-se de que
map
foi definido como aL.Map
instância anterior.fonte
leaflet-control
elemento está contido noleaflet-container
elemento e o último está recebendo os eventos do ponteiro que acionam o zoom e o panorama.<div>
interesse é um filho doleaflet-control
qual ele próprio está dentroleaflet-container
. Os eventos são recebidos pelo pai (leaflet-container
) antes do filho (leaflet-control
).Uma solução alternativa para isso é interromper a propagação de eventos com JavaScript (como é feito para controles Leaflet, por exemplo, botões de zoom):
fonte