GMaps v3: cómo cancelar events de desplazamiento del mouse antes de que se desplacen al map

Utilizando google maps v2, pude evitar que los events de desplazamiento del mouse (DOMMouseScroll) vayan al map y hacer zoom en el map al manejar y cancelar los events de desplazamiento del mouse. Sin embargo, en v3, eso ya no funciona.

Aquí hay un ejemplo. Intenta desplazarte por el text con la rueda del mouse

Observe cómo los drags y los dobles clics se cancelan antes de que lleguen al map; sin embargo, si intenta desplazarse por el text, el evento DOMMouseScroll pasará directamente al map.

El código para cancelar events es básicamente el mismo que v2 y se ve así:

// Set the overlay's div_ property to this DIV this.div_ = div; var cancelEvent = function(e) { if( (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all) || navigator.userAgent.indexOf('Opera') > -1) { window.event.cancelBubble = true; window.event.returnValue = false; } else { e.stopPropagation(); } return false; } var panes = this.getPanes(); panes.floatPane.appendChild(div); var stealEvents = [ 'mousedown', 'dblclick', 'DOMMouseScroll', 'onmousewheel', 'drag']; for( i=0; i < stealEvents.length; i++ ){ google.maps.event.addDomListener(this.div_, stealEvents[i], cancelEvent); } // for IE/Opera if( (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all) || navigator.userAgent.indexOf('Opera') > -1) { this.div_.attachEvent('onmousewheel', cancelEvents); } // for safari if ( navigator.userAgent.indexOf('AppleWebKit/') > -1) { this.div_.onmousewheel = cancelEvents; } 

2 Solutions collect form web for “GMaps v3: cómo cancelar events de desplazamiento del mouse antes de que se desplacen al map”

Al inicializar el map V3, puede especificar una opción para desactivar el zoom de la rueda de desplazamiento:

 var mapOptions = { center: new google.maps.LatLng(-34.397, 150.644), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP, scrollwheel: false }; var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

Google Map V3 – Opciones de map

La opción que está buscando es la rueda de desplazamiento , desea establecerlo en Falso, por defecto está configurado en Verdadero.

Respuesta impresionante de John, no pude hacer ningún comentario [debido a la reputación] así que estoy respondiendo de esta manera, aunque la respuesta haya sido aceptada (hace unos dos años).

Aparentemente, los booleans de JS son minúsculos, por lo que el código correcto es:

 var mapOptions = { center: new google.maps.LatLng(-34.397, 150.644), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP, scrollwheel: false }; var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 
Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.