Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не срабатывает onMouseMove на нижнем слое. (https://javascript.ru/forum/events/3619-ne-srabatyvaet-onmousemove-na-nizhnem-sloe.html)

voy 07.05.2009 20:38

Не срабатывает onMouseMove на нижнем слое.
 
Собственно вот пример:
<div style="position:relative; width:100;height:100;Background-color:red" onmouseover='alert(1)'>1</div>
<div style="position:absolute; width:100;height:100;Background-color:blue;top:0;left:0">2</div>


onmouseover - не срабатывает, т.к. сам DIV перекрыт его теской.
Есть возможность для верхнего DIV - onmouseover сделать "невидимым"?

Как вариант попробовал рассмотреть Event.CAPTURING_PHASE но на сколько я понял в IE6 это не работает.

Поставьте_на_путь_истинный( пожалуйста);

x-yuri 08.05.2009 03:18

Цитата:

Поставьте_на_путь_истинный( пожалуйста);
для чего эти 2 дива?

voy 08.05.2009 09:11

Пытаюсь красиво drag and drop сделать. Уже нашел тут похожие темы - и понял, что без костылей никак.
Рядом с курсором перетаскиваемый объект держать некрасиво - особенно, если это строка таблички шириной на весь экран.
Похоже остается проверять каждый объект на предмет пересечения getBoundingClientRect и clientX/Y
Или есть еще варианты?

Riim 08.05.2009 09:39

А что мешает zIndex-ом поднять нижний слой выше?

Цитата:

Сообщение от voy
Рядом с курсором перетаскиваемый объект держать некрасиво

Почему?

Kolyaj 08.05.2009 09:52

mousemove при перетаскивании объектов надо ловить на всем документе.

voy 08.05.2009 10:15

Цитата:

Сообщение от Riim (Сообщение 18556)
А что мешает zIndex-ом поднять нижний слой выше?


Почему?

А мне это не нужно. Div2 нужен сверху!

voy 08.05.2009 10:21

Цитата:

Сообщение от Riim (Сообщение 18556)
Почему?

Ибо!

voy 08.05.2009 10:23

Цитата:

Сообщение от Kolyaj (Сообщение 18557)
mousemove при перетаскивании объектов надо ловить на всем документе.

mousemove или mouseover на div(нижнем) не сработает.

Kolyaj 08.05.2009 10:27

Вы событие ловите во время перетаскивания? Или в какой другой момент?

voy 08.05.2009 10:37

Цитата:

Сообщение от Kolyaj (Сообщение 18562)
Вы событие ловите во время перетаскивания? Или в какой другой момент?

Да, во время перетаскивания. Живой пример: Если у вас Windows - подвигайте иконки на рабочем столе. Хочу, что бы было так же.

Kolyaj 08.05.2009 10:40

Цитата:

Сообщение от Kolyaj
mousemove при перетаскивании объектов надо ловить на всем документе.

Иначе при резком движении мыши перетаскиваемый объект "сорвется". Соответственно все равно, какие объекты у вас там чего перекрывают, события-то ловятся на всех.

Riim 08.05.2009 11:52

Вероятно, нужно при перетаскивании одного элемента над другим узнать, когда именно мышь оказалась над другим. onmouseover на нем при этом не сработает, поскольку он закрыт перетаскиваемым элементом.

Илья Кантор 08.05.2009 12:23

Кстати, на сайте есть замечательная статья на тему drag and drop, где все подробно описано.

qwe 08.05.2009 13:04

Можно создать event для нижнего div'а самостоятельно
http://www.howtocreate.co.uk/tutoria...ript/domevents

Riim 08.05.2009 14:28

Цитата:

Сообщение от qwe
Можно создать event для нижнего div'а самостоятельно

Но не нужно.


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