Google Maps API v3加载后无法禁用滚轮滚动

5
我正在网站上实现谷歌地图,一切都很顺利,但是在地图加载后似乎无法禁用滚轮。如果我在地图加载前将选项设置为scrollwheel:false,则滚轮被禁用,但是如果我尝试稍后这样做(我有一个复选框可以启用/禁用滚轮)。
以下是页面加载时谷歌地图的选项:
var myOptions = {
            zoom: 15,
            center: currentPosition,
            draggable: true,
            scrollwheel: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

在点击复选框后,接下来的代码可以禁用滚轮。有趣的是,draggable=false 起作用了,并且防止我拖动地图。

var checked = $('#chkPin').is(':checked');
        log("map active: " + checked);
        if (checked) {
            map.scrollwheel = false;
            map.draggable = false;
            map.zoomControl = false;
        } else {
            map.scrollwheel = true;
            map.draggable = true;
            map.zoomControl = true;
        }
1个回答

25

修改 Maps API 对象上未记录的属性是不受支持的,并且可能导致不可预测的结果。您不应直接修改地图对象上的属性。相反,使用文档记录的选项之一修改属性:

特定于对象定义的 getter/setter:

map.setOptions({'scrollwheel': false});

MVCObject 的通用 getter/setter 方法:

map.set('scrollwheel', false);
var isScrollWheelEnabled = map.get('scrollwheel');

这两个选项都成功禁用了地图在初始化后的滚轮缩放功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接