Javascript:GoogleMapsAPI:Map加载到隐藏容器中时为空

Javascript:GoogleMapsAPI:Map加载到隐藏容器中时为空,javascript,css,google-maps,google-maps-api-3,Javascript,Css,Google Maps,Google Maps Api 3,这似乎是一个常见问题,但是如果地图位于最初隐藏的容器中,最新的GoogleMapsAPI是否有修复程序来显示地图 当前,当容器显示为块时,我有映射工作 <div class="map-container"> <div id="map"></div> </div> 如果.map container具有显示:无最初在CSS上,我使用Javascript“显示”容器,然后我看到地图应该在哪里,背景是空白的,上面有google徽标 有没有人找

这似乎是一个常见问题,但是如果地图位于最初隐藏的容器中,最新的GoogleMapsAPI是否有修复程序来显示地图

当前,当容器显示为块时,我有映射工作

<div class="map-container">
    <div id="map"></div>
</div>

如果
.map container
具有
显示:无最初在CSS上,我使用Javascript“显示”容器,然后我看到地图应该在哪里,背景是空白的,上面有google徽标


有没有人找到好的解决办法?我能想到的唯一一件事就是先加载它,然后用javascript在页面加载时隐藏它。。。显然我不想这么做,所以如果有其他方法,那就太好了

显示div后,触发地图上的调整大小事件。您还需要设置地图的中心(当地图没有大小时,中心是div的左上角…)

代码片段:

var地理编码器;
var映射;
函数初始化(){
变量映射选项={
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(
document.getElementById(“map”),mapOptions);
var marker=new google.maps.marker({
位置:map.getCenter(),
地图:地图
});
google.maps.event.addDomListener(document.getElementById('dispmap'),'click',function(){
var elem=document.getElementById(“映射”);
console.log(“before:+elem.style.display”);
elem.style.display=(elem.style.display=='none'||
elem.style.display==''?“块”:“无”;
console.log(“之后:“+elem.style.display”);
google.maps.event.trigger(映射,'resize');
map.setCenter(mapOptions.center);
})
}
google.maps.event.addDomListener(窗口“加载”,初始化)
html,
身体,
#地图,
.map容器{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
#地图{
显示:无;
}

显示div后,触发地图上的调整大小事件。您还需要设置地图的中心(当地图没有大小时,中心是div的左上角…)

代码片段:

var地理编码器;
var映射;
函数初始化(){
变量映射选项={
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(
document.getElementById(“map”),mapOptions);
var marker=new google.maps.marker({
位置:map.getCenter(),
地图:地图
});
google.maps.event.addDomListener(document.getElementById('dispmap'),'click',function(){
var elem=document.getElementById(“映射”);
console.log(“before:+elem.style.display”);
elem.style.display=(elem.style.display=='none'||
elem.style.display==''?“块”:“无”;
console.log(“之后:“+elem.style.display”);
google.maps.event.trigger(映射,'resize');
map.setCenter(mapOptions.center);
})
}
google.maps.event.addDomListener(窗口“加载”,初始化)
html,
身体,
#地图,
.map容器{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
#地图{
显示:无;
}


显示元素时为什么不加载?如果不需要任何交互,也可以使用。显示div后,在地图上触发
resize
事件。您还需要设置地图的中心(当地图没有大小时,中心是div的左上角…)。如果这没有帮助,请提供一个例子来说明你的问题(并解释为什么它不同于所有其他类似的问题…)发布的HTML是无效的<代码>
@geocodezip不匹配,谢谢-这只是一个简单的错误。代码是合理的,但我写出来作为一个例子。您上面所说的似乎是正确的:“当地图没有大小时,中心是div的左上角”@klauskpm,我确实与地图进行了交互,我甚至添加了位置以确定路线点系统。为什么不在显示元素时加载?如果不需要任何交互,也可以使用。显示div后,在地图上触发
resize
事件。您还需要设置地图的中心(当地图没有大小时,中心是div的左上角…)。如果这没有帮助,请提供一个例子来说明你的问题(并解释为什么它不同于所有其他类似的问题…)发布的HTML是无效的<代码>
@geocodezip不匹配,谢谢-这只是一个简单的错误。代码是合理的,但我写出来作为一个例子。您上面所说的似乎是正确的:“当地图没有大小时,中心是div的左上角”@klauskpm,我确实与地图进行了交互,我甚至添加了位置以确定路线点系统。