谷歌地图API v3获胜't加载地图后禁用滚轮

Google Maps API v3 won't disable scroll wheel after map loads

本文关键字:地图 加载 v3 API 获胜 谷歌地图      更新时间:2023-09-26

我正在一个网站上实现谷歌地图,一切都很好,只是在地图加载后我似乎无法禁用滚动轮。如果我在地图加载到滚轮之前设置了选项:false,那么滚轮将被禁用,但如果我稍后尝试这样做(我有一个启用/禁用滚轮的复选框)。

以下是我在页面加载上的谷歌地图选项:

var myOptions = {
            zoom: 15,
            center: currentPosition,
            draggable: true,
            scrollwheel: true,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

map=new google.maps.map(document.getElementById("map_cnvas"),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;
        }

不支持编辑Maps API对象上未记录的属性,这可能会导致不可预测的结果。您不应该直接修改地图对象的属性。相反,使用一个记录的选项修改属性:

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

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

MVCObject通用getter/setter:

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

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