Google Maps API V3: странные сбои отображения пользовательского интерфейса (со скриншотом)
любой, у кого есть какие-либо идеи о том, что вызывает этот странный сбой с компонентами пользовательского интерфейса google maps, будет очень благодарен вам!
карта создается с:
var options = {
zoom: <?php echo $this->zoom ?>,
center: new google.maps.LatLng(<?php echo $this->centre_lat ?>, <?php echo $this->centre_lon ?>),
mapTypeControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), options);
и глюк такой же, даже без маркеров.
8 ответов:
мы столкнулись с той же проблемой. Дизайнер css использовал этот стиль:
стиль.css
img {max-width: 100%; }
вместо отключения управления масштабированием мы исправили проблему, переопределив стиль img для элементов map_canvas следующим образом:
стиль.css:
#map_canvas img { max-width: none; }
теперь управление зумом отображается правильно.
установка " ИМГ Макс-ширина:100%" метод используемый в отзывчивом / жидком дизайне веб-сайта так что изображения изменяются пропорционально, когда браузер изменяется размер. По-видимому, некоторые системы CSS grid начали устанавливать этот стиль по умолчанию. Больше информации о жидких изображениях здесь:http://www.alistapart.com/articles/fluid-images/ не знаю, почему это конфликтует с картой google...
С последней версией Google maps api вам нужно это:
<style> .gm-style img { max-width: none; } .gm-style label { width: auto; display: inline; } </style>
похоже, проблема с управлением зумом. Попробуйте добавить
zoomControl:false
на ваши варианты.на самом деле кажется, что обычный ползунок масштабирования расположен слева от страницы (Используйте Firebug > Inspect Element). Может быть конфликт CSS?
Ну, я получил исправление для этого:
на вашем CSS вы добавили что-то вроде:
img {max-width: 100%; height: auto;}
старайтесь не делать его глобальным, и он должен это исправить :)
это сработало для меня:
#map img { max-width: none !important; } (from Patrick's answer)
атрибут "!важно " обязательно переопределяет любой другой стиль, #map-это идентификатор, назначенный при объявлении нового объекта Gmaps:
<script> map = new GMaps({ div: '#map', <- your id lat: *******, lng: *******, scrollwheel: false, panControl: true, .... ... </script>
Если вы используете функцию Dreamweaver fluid grid, ваша настройка по умолчанию должна выглядеть так:
img, object, embed, video { max-width: 100%; } /* IE 6 does not support max-width so default to width 100% */ .ie6 img { width:100%; }
попробуйте это:
object, embed, video { max-width: 100%; } #map_canvas img { max-width: none; } /* IE 6 does not support max-width so default to width 100% */ .ie6 img { width:100%; }
просто замените код, как это.
Bootstrap (начиная с версии 2.3.2) связывается с изображениями так же, как и в принятом ответе.
на самом деле, я подозреваю, что дизайн, используемый на веб-сайте Haroldo, использует Bootstrap.
Я просто публикую это, потому что никто больше не упоминал Bootstrap, и кто-то может искать решение для Bootstrap.
я столкнулся с этой проблемой на моем сайте Square Space. У меня не было доступа к таблице стилей CSS. Поскольку вы внедряете HTML-документ, вы можете просто использовать встроенный CSS для устранения проблемы. Я изменил стиль контейнера вместо того, чтобы сделать широкое изменение сайта (что я не мог сделать). Вот что я сделал:
<style> html, body, #map-canvas { height: 600px; width: 100%; margin: 0px; padding: 0px } #map-canvas img {max-width: none;} </style>