Google Map V3 не в центре скрытого раздела - PullRequest
7 голосов
/ 25 декабря 2010

У меня есть карта Google внутри div, которую мне нужно скрыть по умолчанию

<div id="newpost" style="display:none;">

Когда карта скрыта, часть ее не отображается.Я предполагаю, что я должен перезагрузить карту на Submmit.Кто-нибудь знает, как это сделать?

Спасибо!

Вот мой код:

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

Это функция oad карты на теге body:

<body onload="load()" onunload="GUnload()">

Вот div, который переключается, и div, который содержит карту:

<div id="newpost" style="display:none;">
  <div id="map" style="width: 500px; height: 300px"></div>

Ответы [ 3 ]

14 голосов
/ 25 декабря 2010

Как то так? http://jsbin.com/imuri5
Идея состоит в том, чтобы инициализировать карту после отображения DIV.

EDIT:
Хорошо, в зависимости от вашего обновления замените:

jQuery('#newcatchhide').live('click', function(event) {        
         jQuery('#newpost').toggle('show');
    });

с:

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

А затем удалите onload="load()" из тега body

13 голосов
/ 25 декабря 2010

У меня недавно была эта же проблема, и я обнаружил, что исправление довольно простое:

google.maps.event.trigger(map, 'resize');

Где map - это экземпляр вашей карты Google.сделай свой div видимым.

Если вы используете jQuery для карты, вы можете использовать

map = $('#map_canvas').gmap().map;
0 голосов
/ 22 февраля 2011

лучше:

gmap.redraw = function() {
    gmOnLoad = true;
    if(gmOnLoad) {
        google.maps.event.trigger(gmap, "resize");
        gmap.setCenter(gmlatlng);
        gmOnLoad = false;
    }
}

и в показе события клика:

$("#goo").click(function() {
  if ($("#map_canvas").css("display") == "none") {
    $("#YMapsID").toggle();
    $("#map_canvas").toggle();
    if (gmap != undefined) {
        gmap.redraw();
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...