Donc, apparemment, quand j'utilise:
<iframe style="pointer-events:none;" src="SOME GOOGLE MAPS LINK" width="100%" height="500" frameborder="0" ></iframe>
le panoramique est également désactivé.
et quand j'utilise:
<iframe style="scrollwheel: false" src="SOME GOOGLE MAPS LINK" width="100%" height="500" frameborder="0" ></iframe>
ça ne marche tout simplement pas.
Est-il possible de désactiver le zoom de défilement dans l'iframe?
Il n'y a aucun moyen de désactiver le défilement uniquement sur l'API iframe de Google Maps, mais il existe un moyen de contourner ce problème.
Comme vous aviez remarqué que style="pointer-events:none;"
Empêche l'iframe de recevoir tout événement de souris, et avec la combinaison de gestionnaires d'événements Javascript sur la superposition, vous pouvez désactiver et activer la réception d'événements de souris au moment que vous voulez.
Vous pouvez même écouter la mousemove()
et ne libérer les événements du pointeur que lorsque la souris se trouve sur certaines zones (par exemple, les boutons)
J'ai fait démo rapide sur github , j'espère que cette aide.
Pour quelqu'un qui se demande comment désactiver le Javascript Google Map API
Adopté de l'idée @kaho
var map;
var element = document.getElementById('map-canvas');
function initMaps() {
map = new google.maps.Map(element , {
zoom: 17,
scrollwheel: false,
center: {
lat: parseFloat(-33.915916),
lng: parseFloat(151.147159)
},
});
}
//START IMPORTANT part
//disable scrolling on a map (smoother UX)
jQuery('.map-container').on("mouseleave", function(){
map.setOptions({ scrollwheel: false });
});
jQuery('.map-container').on("mousedown", function() {
map.setOptions({ scrollwheel: true });
});
//END IMPORTANT part
.big-placeholder {
background-color: #1da261;
height: 300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<div class="big-placeholder">
</div>
<!-- START IMPORTANT part -->
<div class="map-container">
<div id="map-canvas" style="min-height: 400px;"></div>
</div>
<!-- END IMPORTANT part-->
<div class="big-placeholder">
</div>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAIjN23OujC_NdFfvX4_AuoGBbkx7aHMf0&callback=initMaps">
</script>
</body>
</html>
C'est un bon article de blog sur la façon d'y parvenir avec onClick="style.pointerEvents='none'"
Désactiver le zoom de la molette de la souris sur les iframes Google Map intégrés
Voici un exemple
<script>
function initMap()
{
var map = new google.maps.Map(document.getElementById('map'),
{center: {lat: -34.397, lng: 150.644},
scrollwheel: false,
zoom: 8
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer>
</script>
Source: - https://developers.google.com/maps/documentation/javascript/?csw=1#GMap2.Methods