2012-04-08 2 views
2

У меня возникли проблемы с изменением размера API JavaScript Google Maps v3. Если я установил «параметры» CSS прямо на загрузку (только в documentation), карта будет показывать 100% высоту и ширину - никаких проблем. Но когда я пытаюсь получить тот же результат, нажав на ссылку, он не отображает всю карту.Карты Google не отображают всю карту в полноэкранном режиме

This is how the map shows upon click on the link to toggle full screen

я испытал как css() и toggleClass() в JQuery на этом мероприятии. toggleClass() делает карту идет невидимая (скрывает карту полностью, а не делает его полный экран) с этим кодом:

// jQuery 
$('#weather-map').toggleClass('test'); 

// CSS 
#weather-map.test { 
    height : 100%; 
    width : 100%; 
    top : 0; 
    left : 0; 
    position : absolute; 
    z-index : 200; 
} 

css() работы (карта идет на весь экран), но выше изображение показывает, как карта оказывает на весь экран :

$('#weather-map').css({ 
         'height' : '100%', 
         'width' : '100%', 
         'top' : '0', 
         'left' : '0', 
         'position' : 'absolute', 
         'z-index' : '200' 
         }); 

Интересно, почему это так? Я что-то пропустил или этот метод не подходит для переключения полного экрана карты?

Заранее спасибо.

ответ

4

Это просто из-за того, как работает Javascript Google. Он отображает на основе размера контейнера и не добавляет какого-либо обработчика для повторной рендеринга, если после этого контейнер снова будет изменен. Я полагаю, что в приведенном выше примере вам нужно будет просто вызвать код инициализации карты второй раз, чтобы снова отобразить карту в вашем измененном div.

+0

Большое спасибо! Ваш ответ исправил мою проблему, и я соглашусь с ней, как только смогу :) – Erik

+0

У меня была эта проблема несколько недель назад - очень раздражает, а также сложно исправить. Речь идет только о том, чтобы сделать контейнер более крупным, чтобы начать с него, а затем сжиматься вниз - против небольшого роста и роста. – d2kagw

+11

Еще лучше запустить событие изменения размера, google.maps.event.trigger (map, 'resize'); - это заставляет API пересчитывать свои размеры. Просто запустите это сразу после изменения размера контейнера. – barryhunter

Смежные вопросы