Google Map V3在隐藏的div中偏离中心

use*_*794 7 javascript google-maps google-maps-api-3

我在div中有一个谷歌地图,我需要默认隐藏

<div id="newpost" style="display:none;">
Run Code Online (Sandbox Code Playgroud)

当地图被取消隐藏时,其中一部分不会渲染.我猜我必须重新加载地图onSubmit.有人知道怎么做吗?

谢谢!

这是我的代码:

   <script type="text/javascript">
jQuery(document).ready(function(){
    jQuery('#newcatchhide').live('click', function(event) {        
         jQuery('#newpost').toggle('show');
    });
});
Run Code Online (Sandbox Code Playgroud)

这是body标签上的map oad函数:

<body onload="load()" onunload="GUnload()">
Run Code Online (Sandbox Code Playgroud)

这是切换的div,以及包含地图的div:

<div id="newpost" style="display:none;">
  <div id="map" style="width: 500px; height: 300px"></div>
Run Code Online (Sandbox Code Playgroud)

ifa*_*our 14

像这样的东西?http://jsbin.com/imuri5
想法是显示DIV 初始化地图.

编辑:
确定基于您的更新替换:

jQuery('#newcatchhide').live('click', function(event) {        
         jQuery('#newpost').toggle('show');
    });
Run Code Online (Sandbox Code Playgroud)

有:

var onLoad = true;
jQuery('#newcatchhide').live('click', function(event) {        
    jQuery('#newpost').toggle(function() {
        if(onLoad) {
            load();
            onLoad = false;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

然后onload="load()"从body标签中删除

  • 太棒了,谢谢你.没有其他建议对我有用.这个是一种享受! (2认同)

Jan*_*nen 13

我最近自己也遇到了同样的问题,并发现修复非常简单:

google.maps.event.trigger(map, 'resize');
Run Code Online (Sandbox Code Playgroud)

map你的谷歌地图实例在哪里.

在使div可见后,您可以调用此方法.

如果你使用jQuery作为地图,你可以使用

map = $('#map_canvas').gmap().map;
Run Code Online (Sandbox Code Playgroud)