Карты Google, Z Index и выпадающие меню Javascript

Сегодня у меня возникла небольшая проблема: у меня есть раскрывающееся меню JS, и когда я вставляю GoogleMap ... Меню отображается за картой Google ... Любые идеи о том, как задать случайный индекс z для карты Google ?

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
14
0
22 612
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Попробуйте установить z-index вашего меню на безумно высокий уровень. По-видимому Карты Google используют диапазон от -9000000 до 9000000.

Меню построено по шаблону ... Я не уверен, что могу это контролировать. Вот почему я спрашивал, как изменить z-индекс карты Google.

ebarrera 17.09.2008 23:49

Оберните карту в DIV, дайте этому DIV z-index, равное 1. Оберните раскрывающийся список в DIV и присвойте ему более высокое значение.

Обратите внимание, что раскрывающиеся меню в некоторых браузерах (кхмIE * кхм) вообще не могут быть перемещены по zPosition. Вам нужно будет использовать «прокладку iframe», чтобы скрыть его или полностью скрыть раскрывающийся список, если вы хотите разместить что-то над ним. См .: http://clientside.cnet.com/wiki/cnet-libraries/02-browser/02-iframeshim

Ответ принят как подходящий

Если ваша проблема возникает в Internet Explorer, но отображается так, как вы ожидаете в FireFox или Safari, эта ссылка был чрезвычайно полезен для меня с аналогичная проблема.

Похоже, это сводится к идее, что маркировка элемента как «position: relative;» в CSS заставляет IE6 и 7 связываться с его z-индексом по сравнению с другими элементами, которые предшествуют ему в документе HTML, неинтуитивно и противоречащим спецификациям. Предположительно IE8 ведет себя «правильно», но я сам его не тестировал.

Совет Anutron будет действительно полезен, если ваша проблема связана с элементом формы <SELECT>, но если вы используете JavaScript для управления div или ul, чтобы действовать как раскрывающийся список, я не думаю, что это поможет.

Это очень полезная статья, которую вы связали. Спасибо!

Andy Stewart 18.01.2010 20:57

Карта уже заключена в div. Присвойте ему отрицательный z-index, и он заработает - с одной оговоркой: элементы управления gmaps не доступны для кликов.

Если ваше меню обернуто в контейнер div, например Затем #menuWrap присвоит ему относительную позицию и высокий z-index .... например.

#menuWrap {
  position: relative;
  z-index: 9999999
}

Убедитесь, что ваша карта находится внутри div

IE дает проблему

каждый div, заключенный в относительный позиционированный div, будет запускать новый z-index в IE. IE интерпретирует внешние относительные div в порядке html. Последнее определение находится сверху. Независимо от того, каковы z-индексы div внутри относительно позиционированных div.

Решение для IE: определите div, который должен быть наконец наверху в html.

(Таким образом, z-index работает в IE, но только для каждого держателя div, каждый держатель div не зависит от других держателей div)

z-index (особенно в Internet Explorer 7) у меня действительно не работал. Я пробовал много разных комбинаций высоких и низких z-индексов карты, но не получил удовольствия.

Безусловно, самым простым и быстрым ответом для меня было переупорядочить мою разметку / css, чтобы мои всплывающие окна / ролловеры были перечислены в разметке выше / раньше моей карты (буквально до <div id = "map">), таким образом я мог позволить z-index оставаться по умолчанию (auto) и перейти к более важным аспектам моего веб-приложения;)

Надеюсь это поможет!

<ul id = "rollover">
<li><a href = "#here">There</a></li>
</ul>
<div id = "map">...</div>

Нет необходимости устанавливать z-index и для карты, и для меню. Если вы просто установите z-индекс меню выше, чем карта, это не обязательно сработает.

Установите z-index div карты равным -1. Теперь меню выпадет и отобразится поверх карты ......... но если вы используете оболочку, карта больше не будет интерактивной, поскольку теперь она находится за оболочкой.

Чтобы обойти это, используйте функции onmouseover и onmouseout в своей оболочке div. Убедитесь, что они находятся в вашем div-оболочке, а не в div вашей карты.

onmouseover = "getElementById('map').style.zIndex = '10000';" 

onmouseout = "getElementById('map').style.zIndex = '-1';"

Я создал раскрывающийся список стиля Google и имел ту же проблему ... используя V3 api для карт Google, вы просто создаете элемент управления и размещаете его на карте, используя:

map.controls[google.map.ControlPosition.TOP].push(control);

Так как это раскрывающийся список, просто убедитесь, что z-index содержащего div самый высокий (z = 3), тогда раскрывающаяся часть, содержащая элементы меню, ниже, чем содержащая div (z = 0).

Вот пример.

По моему опыту, прокладки нужно использовать только для подключаемых модулей (например, в Google Планета Земля).

Я обнаружил, что иногда непреднамеренное пренебрежение объявлением! Doctype вызывает такого рода икоту в IE, когда другие браузеры, похоже, могут нормально согласовывать страницу.

Другие вопросы по теме