作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
打开信息窗口后,我设置:
map.setOptions({draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true});
这使得用户无法再与 map 交互,但是当用户单击信息窗口上的“关闭”时...我如何将其设置回默认值?
最佳答案
观察信息窗口的map_changed
事件,每次打开或关闭信息窗口时都会触发该事件(无论如何触发)。
根据信息窗口的 map 属性设置值(关闭时为 null
,否则为 map 实例)
function initialize() {
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 14,
center: new google.maps.LatLng(52.549878, 13.425209),
mapTypeId: google.maps.MapTypeId.ROADMAP
}),
marker = new google.maps.Marker({
map: map,
position: map.getCenter()
}),
win = new google.maps.InfoWindow({
content: 'hello world'
});
google.maps.event.addListener(win, 'map_changed', function() {
//will be true when infowindow is open
var boo = !!this.getMap();
map.setOptions({
draggable: !boo,
disableDefaultUI: boo,
scrollwheel: !boo,
disableDoubleClickZoom: boo
});
});
google.maps.event.addListener(marker, 'click', function() {
win.open(map, this);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map_canvas {
height: 100%;
margin: 0;
padding: 0
}
<script src="https://maps.googleapis.com/maps/api/js?v=3&.js"></script>
<div id="map_canvas"></div>
关于javascript - 如何重新启用禁用的谷歌地图 v3 拖放、缩放等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907559/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!