我可以通过以下方式调整窗口更改:
//on window resize
google.maps.event.addDomListener(window, "resize", function() {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
});
,但是当窗口没有改变并且只有map容器的宽度/高度时,如何调整大小?在这里,我的网站的侧边栏菜单可以打开/关闭......当发生这种情况时,地图容器会改变宽度。
这似乎没有做任何事情,也不确定原因。也许是在改变之后才得到地图中心?
//on sidebar open/close
$('body').on('click', '.sidebar-toggler', function (e) {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
});
更多信息:
如果我使用超时,那么这就像我预期的那样工作。事情是我的侧边栏上没有任何动画打开/关闭所以这只是在实际调用之前需要打开/关闭的问题吗?
//redraw if sidebar open/close
$('body').on('click', '.sidebar-toggler', function (e) {
setTimeout(function() {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
}, 100);
});