使用谷歌地图v2,我能够阻止鼠标滚动(DOMMouseScroll)事件进入地图并通过处理和取消鼠标滚动事件来缩放地图。但是,在第3版中,它不再有效。
Here is an example. Try to scroll through the text with the mouse wheel
请注意拖动和双击在到达地图之前是如何取消的,但是如果您尝试滚动文本,那么DOMMouseScroll事件将直接进入地图。
取消事件的代码与v2基本相同,如下所示:
// 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;
}
答案 0 :(得分:9)
初始化V3 Map时,您可以指定禁用滚轮缩放的选项:
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);
您要查找的选项是滚轮 - 您希望将其设置为False - 默认设置为True。
答案 1 :(得分:1)
John的答案很棒,我无法发表评论[由于代表]所以我回答这个问题 - 尽管答案已被接受(大约两年前)。
显然,JS的布尔值是小写的,所以正确的代码是:
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);