По состоянию на середина 2014 года в Google Maps v3 , по-видимому, существует ошибка определения размера InfoWindow, которая затрагивает несколько браузеров.
Сообщалось здесь:
https://code.google.com/p/gmaps-api-issues/issues/detail?id=5713
( и демонстрационная версия JSFiddle здесь )
Пожалуйста, нажмите на звездочку над вопросом выше, чтобы проголосовать за ее исправление!
Из всех моих тестов, похоже, связан с ошибками округления размера элемента , поскольку это происходит только при некоторых размерах шрифта.
Плохие обходные пути:
Поиграв с большинством предложений на этой странице, следующие НЕ хорошие решения :
overflow: hidden
(потенциально может обрезать содержимое)
white-space: nowrap
(потенциально может обрезать содержимое)
- Передача объекта jQuery или узлов DOM (контент потенциально может выходить за пределы окна InfoWindow)
- Установка содержимого InfoWindow после его открытия (само по себе, не помогает)
- Изменение шрифта от Roboto (проблема может возникнуть с любым шрифтом)
Один из возможных обходных путей - дать вашему InfoWindow фиксированную ширину (например, для тех, кто предложил установить max-width и min-width), однако, когда у вас много маркеров, а количество контента колеблется, это не идеально , Это также плохо для мобильных / адаптивных дизайнов.
Разумный обходной путь:
Так что, пока Google не исправит это, мне пришлось искать обходной путь. После примерно 12 часов тестирования и отладки я получил следующее:
Это не имеет те же недостатки, что и другие предложения.
- Контент никогда не должен обрезаться (если только у вас нет больших изображений, которые превышают ширину InfoWindow).
- Добавляются вертикальные полосы прокрутки, но только при необходимости.
- Содержание не должно выходить за пределы окна InfoWindow
- В большинстве случаев окно InfoWindow автоматически подбирается по размеру (не фиксированный размер)
- Подходит для мобильных телефонов и адаптивных макетов
- Поля, отступы, шрифты должны работать нормально
Downsides:
- Моя версия требует jQuery, но, вероятно, она может быть переработана, чтобы быть чистой JS
- Он создает 20 пикселей отступа справа от содержимого, чтобы освободить место для полосы прокрутки в случае необходимости. Вы можете пропустить это, если хотите, или выполнить дополнительную проверку, чтобы добавить отступ только при необходимости.
- Это довольно странно, но без редактирования JavaScript Google, возможно, это единственный выход.
Пожалуйста, отправляйте улучшения и исправления по мере их нахождения.