Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Div position z-index. Помогите (https://javascript.ru/forum/dom-window/59837-div-position-z-index-pomogite.html)

OOA1969 29.11.2015 13:58

Div position z-index. Помогите
 
Уважаемые ГУРУ, помогите новичку ...
Работала конструкция ...
div position relative
в нём была таблица, в каждой ячейке загружалось img, к которой по id привязывался div position absolute z-index=100 (всплывающее меню ul-li).
При наведении мыши на img всплывало меню в центре картинки.
Решил убрать из конструкции таблицу ...
Остальные данные не менял. Только поудалял все tr и td. Теперь при наведении мыши на img всплывающее меню появляется, но оно прижато к левому краю body, а по вертикали работает нормально.
Что могло произойти? Почему конструкция перестала работать?
Заранее спасибо!

Алексей Петрович 29.11.2015 14:03

Верни div position relative. Ну или обёртке меню назначь position relative.

OOA1969 29.11.2015 14:50

Уважаемые ГУРУ, помогите новичку ...
Работала конструкция ...

div position relative
в нём была таблица, в каждой ячейке загружалось img, к которой по id привязывался div position absolute z-index=100 (всплывающее меню ul-li).
При наведении мыши на img всплывало меню в центре картинки.
Решил убрать из конструкции таблицу ...
Остальные данные не менял. Только удалил все tr и td. Теперь при наведении мыши на img всплывающее меню появляется, но оно прижато к левому краю body, а по вертикали работает нормально.
Что могло произойти? Почему конструкция перестала работать?
Заранее спасибо!

Вот сам текст ...
CSS
.content { position: relative; overflow: auto; }
.popmnu { z-index: 100; display: none; position: absolute; margin-top: -50px; padding-left: 70px; }
HTML
<div class="content">
<img src='images/flag.png' onmouseover=Popmenu('flagA') />
<div class='popmnu' id='flagA'>
<ul>
<li><a href='1.html'>город 1</a></li>
<li><a href='2.html'>город 2</a></li>
</ul>
</div>

Алексей Петрович 29.11.2015 15:22

Меня пугает margin-top: -50px; padding-left: 70px;, зачем это вообще нужно?
CSS:
.content {
    position: relative;
    overflow: auto; }
.popmnu {
    z-index: 100;
    display: none;
    position: absolute;
    top: 0;
    left: 0; }

HTML:
<div class="content">
    <img src='images/flag.png' onmouseover=Popmenu('flagA') />
    <div class='popmnu' id='flagA'>
        <ul>
            <li><a href='1.html'>город 1</a></li>
            <li><a href='2.html'>город 2</a></li>
        </ul>
    </div>
</div>
Ты </div> пропустил может в этом проблема, а может из-за margin. А лучше сделай это без JS. Вот тебе простой пример без JS http://jsfiddle.net/gu7e425y/.

OOA1969 29.11.2015 15:52

"margin-top: -50px; padding-left: 70px;" нужны чтобы на картинке с размерами 140 * 100 текст всплывал посередине картинки

OOA1969 29.11.2015 15:53

а JS нужна только для слежения за мышкой ... onmouseover

Алексей Петрович 29.11.2015 15:58

Цитата:

Сообщение от OOA1969 (Сообщение 398013)
"margin-top: -50px; padding-left: 70px;" нужны чтобы на картинке с размерами 140 * 100 текст всплывал посередине картинки

А не проще использовать свойства left, top? А для центрирования flex-box, с дочерним элементом margin: auto;

OOA1969 29.11.2015 15:58

При top: 0; left: 0; - окно всплывает в левом верхнем углу div content, а мне надо, чтобы оно всплывало на текущей картинке ... а их, например 6 рядов по 8 штук ...

Алексей Петрович 29.11.2015 16:01

Цитата:

Сообщение от OOA1969 (Сообщение 398014)
а JS нужна только для слежения за мышкой ... onmouseover

Ну с этим и css справиться. Вот представь ситуацию когда на твой сайт зайдёт пользователь и у него будет отключен JS. (Я иногда отключаю, с целью экономии трафика)

ruslan_mart 29.11.2015 16:06

Цитата:

Сообщение от OOA1969
а JS нужна только для слежения за мышкой ... onmouseover

А CSS hover не вариант?

OOA1969 29.11.2015 16:09

я в твой пример вставил ещё одну картинку с таким же дивом ... и всплывает окошко только в одном ми том же месте, вне зависимости на какой картинке мыша

OOA1969 29.11.2015 16:09

<div class="content">
<img src='https://www.google.ru/logos/doodles/2015/42nd-anniversary-of-the-official-recognition-of-the-letter-5644871192805376.3-res.png' alt="image" />
<div class='popmnu'>
<ul>
<li><a href='1.html'>город 1</a></li>
<li><a href='2.html'>город 2</a></li>
<li><a href='1.html'>город 3</a></li>
<li><a href='2.html'>город 4</a></li>
</ul>
</div>

<img src='https://www.google.ru/logos/doodles/2015/42nd-anniversary-of-the-official-recognition-of-the-letter-5644871192805376.3-res.png' alt="image" />
<div class='popmnu'>
<ul>
<li><a href='1.html'>город А</a></li>
<li><a href='2.html'>город И</a></li>
<li><a href='1.html'>город В</a></li>
<li><a href='2.html'>город І</a></li>
</ul>
</div>
</div>

OOA1969 29.11.2015 16:11

http://jsfiddle.net/gu7e425y/2/

Алексей Петрович 29.11.2015 16:12

<div class="content">
<img src='https://www.google.ru/logos/doodles/2015/42nd-anniversary-of-the-official-recognition-of-the-letter-5644871192805376.3-res.png' alt="image" />
<div class='popmnu'>
<ul>
<li><a href='1.html'>город 1</a></li>
<li><a href='2.html'>город 2</a></li>
<li><a href='1.html'>город 3</a></li>
<li><a href='2.html'>город 4</a></li>
</ul>
</div>


</div>

<div class="content">


<img src='https://www.google.ru/logos/doodles/2015/42nd-anniversary-of-the-official-recognition-of-the-letter-5644871192805376.3-res.png' alt="image" />
<div class='popmnu'>
<ul>
<li><a href='1.html'>город А</a></li>
<li><a href='2.html'>город И</a></li>
<li><a href='1.html'>город В</a></li>
<li><a href='2.html'>город І</a></li>
</ul>
</div>
</div>

OOA1969 29.11.2015 16:13

вопрос пока не в этом ... пока не могу добиться, чтобы окно всплывало на активной картинке... А оно всплывает в фиксированном месте

Алексей Петрович 29.11.2015 16:15

http://jsfiddle.net/gu7e425y/9/

Алексей Петрович 29.11.2015 16:27

Вот как ещё пример с центрированием меню по середине картинки http://jsfiddle.net/gok20yta/1/

Алексей Петрович 29.11.2015 17:04

Переделал последний пример, может кому то пригодиться http://jsfiddle.net/gok20yta/2/

OOA1969 29.11.2015 19:00

спасибо большое за подсказки!!! Держи карму +.

Алексей Петрович 29.11.2015 19:19

Не за что

OOA1969 29.11.2015 19:53

как вставлять такую красоту в сообщения, как ты мне написал ( Сегодня, 14:22 )

Алексей Петрович 29.11.2015 20:03

Цитата:

Сообщение от OOA1969 (Сообщение 398046)
как вставлять такую красоту в сообщения

Какие сообщения?

OOA1969 01.12.2015 11:15

посмотри на 1-й странице нашей переписки первый твой ответ с кодом, который красиво оформлен ...

Алексей Петрович 01.12.2015 15:49

Конкретней формируй мысли. Скриншот что ли отправь, в paint'е обведи, нарисуй что ты хочешь.


Часовой пояс GMT +3, время: 13:04.