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

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

Спасибо!

Ответы

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Если ваше меню завернуто в контейнер div, например. #menuWrap затем назначьте его относительное положение и придайте ему высокий индекс z... например,

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

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

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

Ответ 8

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

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

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

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

Ответ 9

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

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

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

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

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

Ответ 10

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

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

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

Здесь example.

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

Ответ 11

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