地图加载后 Google Maps API v3 不会禁用滚轮
Posted
技术标签:
【中文标题】地图加载后 Google Maps API v3 不会禁用滚轮【英文标题】:Google Maps API v3 won't disable scroll wheel after map loads 【发布时间】:2012-08-17 00:45:13 【问题描述】:我正在网站上实现谷歌地图,一切都很好,除了地图加载后我似乎无法禁用滚轮。如果我在地图加载到滚轮之前设置选项: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】:不支持编辑 Maps API 对象上未记录的属性,这可能会导致不可预知的结果。您不应该直接修改地图对象的属性。相反,使用记录的选项之一修改属性:
对象特定定义的getter/setter:
map.setOptions('scrollwheel': false);
MVCObject 通用 getter/setter:
map.set('scrollwheel', false);
var isScrollWheelEnabled = map.get('scrollwheel');
在地图初始化后,这两个选项都成功禁用了滚轮缩放地图。
【讨论】:
以上是关于地图加载后 Google Maps API v3 不会禁用滚轮的主要内容,如果未能解决你的问题,请参考以下文章
Google Maps v3 - 防止 API 加载 Roboto 字体
如何使用 Google Maps Javascript API V3 在加载时设置 infoWindow 内容