У меня возникла проблема с внедрением Карты Google через API v3 в модальном поле.
Серые прямоугольники отображаются на холсте карты, когда отображается модальная мода. Изменение размера окна браузера, создание Web Inspector и т.д. делает все видимые карты, т.е. "принудительно повторно отображает" карта.
Родительский элемент элемента карты (section#map-modal
, см. код ниже) имеет display: none
, установленный в CSS на загрузке страницы. Модальный код JS автоматически устанавливает display: block
при нажатии кнопки show. Если я временно удалю display: none
из модального элемента, карта будет корректно отображаться при обновлении страницы. Не нравится ли Google Map иметь скрытый родительский элемент?
Я использую плагин Twitter Bootstrap modal jQuery, и я контролирую сам модаз с помощью CSS. Он фиксирован позиционирован, имеет ширину пикселя и т.д. Ничего необычного.
Я, конечно, искал решения, и многие указывают на метод API Google для запуска события resize
:
google.maps.event.trigger(map, 'resize');
Я действительно сделал это, но безрезультатно.
Соответствующий код: https://gist.github.com/1591488
Как вы можете видеть, я запускаю события по строке 39.
(нажмите кнопку "Показать большую карту" внизу боковой панели).
Файлы:
-
fagerhult.js
-
fagerhult.map.js
-
bootstrap-modal.js
-
master.css
Я был бы глубоко признателен за любую помощь или дополнительную пару глаз в этом, так как я скоро сойду с ума над этим.