Je travaille avec la bibliothèque JavaScript de Leaflet et j'ai joint une carte (de travail) à mon document HTML. Il se trouve au milieu de la page, et lorsque je défile avec la molette de la souris et que j'arrive à la carte, il zoome automatiquement sur la carte.
Je veux faire défiler la page sans m'arrêter sur la carte. Existe-t-il un moyen d'activer le zoom de la roue uniquement après le premier clic sur la carte?
javascript
leaflet
zoom
mouse-wheel
Jandroide
la source
la source
Plus d'un commentaire / amélioration sur le composant bascule de la réponse acceptée , ce qui est super (merci). Mais.
Lors de l'interaction avec une carte, pour de nombreux cas d'utilisation, l'utilisateur doit également cliquer sur la carte pour effectuer sa tâche, donc ceci:
Peut entraîner un comportement inattendu une fois que l'utilisateur commence réellement à utiliser la carte.
Je suggérerais quelque chose qui peut sembler un peu plus intuitif à l'utilisateur - cliquez sur la carte pour désactiver le défilement de la souris .
Par exemple, définissez votre
scrollWheelZoom: false
comme ci-dessus, puis:la source
focus
/blur
rend la fonctionnalité de carte beaucoup plus intuitive.Leafle.Sleep rendra votre travail facile, et il est largement configurable
Fondamentalement, il désactive les événements de défilement lorsqu'ils ne sont pas nécessaires et "réveille" votre carte lorsqu'ils le sont.
Je publierais du code, mais les valeurs par défaut semblent le faire correctement, vous n'aurez donc probablement pas besoin de quoi que ce soit au
<script src="path/to/leaflet-sleep.js"></script>
- delà et vous aurez une carte comme celle-ci .la source
Vous pouvez le faire uniquement par ces 3 lignes:
ou:
la source