javascript - Google Maps API v3 不会在 map 加载后禁用滚轮

标签 javascript google-maps-api-3

我正在一个网站上实现谷歌地图,一切都运行良好,除了我似乎无法在加载 map 后禁用滚轮。如果我在 map 加载之前将选项设置为 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 正在工作并阻止我拖动 map 。

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 对象上未记录的属性,这可能会导致不可预知的结果。您不应该直接修改 map 对象的属性。相反,使用记录的选项之一修改属性:

对象特定定义的 getter/setter:

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

MVCObject 通用 getter/setter:

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

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

关于javascript - Google Maps API v3 不会在 map 加载后禁用滚轮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058805/

相关文章:

php - 打开新页面并在同一 href 链接中执行 javascript

javascript - 事件委托(delegate)在从列表中单击时获取属性

javascript - Google map 路线 API 重定向到 map.google.com

Android ssl 握手异常映射 api

javascript - 回调完成后运行

javascript - 将输入限制为一组字符,同时显示这些字符

javascript - Pentaho Kettle 修改的 Java 脚本 setVariable

javascript - 如何使用 Javascript 动态更改 SVG 中的图像模式

javascript - 使用 Angular 4 和谷歌地图设置多个标记

javascript - 删除功能内的谷歌地图圆圈覆盖