Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2019, 19:15   #1
lis96
Новичок
Джуниор
 
Регистрация: 12.02.2019
Сообщений: 2
По умолчанию Событие мыши для разных потомков одного родителя

Уважаемые товарищи! Столкнулся с такой вот проблемой: есть родительский фоновый элемент и множество его дочерних элементов. Для всех дочерних элементов зарегистрировано событие, которое по нажатию клавиши мыши заставляет его следовать за мышью, а, когда отпускаешь клавишу, элемент возвращается обратно.

Ну, в общем, самый обычный drag-and-drop.

При нахождении мыши над каждым из элементов, тот "активируется" - загорается цветным border-ом. Однако, когда я "перетаскиваю" какой-то элемент, другие элементы, находящиеся визуально под ним, не "активируется", что логично. А нужно.

В общем, нужно сделать так, чтобы для разных потомков одного родительского элемента, накладывающихся друг на друга визуально, вызывалось событие мыши. То есть визуально верхний элемент должен быть "прозрачным" для событий мыши, но при этом для него эти события тоже должны вызываться.
Использую jQuery.

Регистрировать для родителя "mousemove", в котором сравнивать координаты всех дочерних элементов с координатами мыши - чересчур непроизводительно, ибо дочерних элементов много.
lis96 вне форума Ответить с цитированием
Старый 12.02.2019, 21:17   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Условный стартдраг вешаешь на объект драга; последующие маусмув, маусэнд — на родителя/область драга (я обычно их на вьюпорт кидаю).
А теперь ход конем: на элемент, который таскаешь, во время драга, даешь CSS с pointer-events: none;

p.s. ::selection тоже отруби: в ФФ, оказывается, он срабатывает сквозь пойнтер-ивентс.
Alar, верни репу!

Последний раз редактировалось Naive; 12.02.2019 в 21:28.
Naive вне форума Ответить с цитированием
Старый 12.02.2019, 22:09   #3
lis96
Новичок
Джуниор
 
Регистрация: 12.02.2019
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Условный стартдраг вешаешь на объект драга; последующие маусмув, маусэнд — на родителя/область драга (я обычно их на вьюпорт кидаю).
А теперь ход конем: на элемент, который таскаешь, во время драга, даешь CSS с pointer-events: none;

p.s. ::selection тоже отруби: в ФФ, оказывается, он срабатывает сквозь пойнтер-ивентс.
О, отличная идея, спасибо большое, сработало! Даже немного стыдно, что сам не допёр
lis96 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переадресовать событие ребенка на родителя JunkieBeat C# (си шарп) 3 10.08.2014 20:44
Координаты мыши относительно родителя Shkolota Общие вопросы Delphi 2 09.12.2013 17:42
Событие на прокрутку колёсиком мыши mental Общие вопросы Delphi 4 16.08.2011 14:47
Событие для правой кнопки мыши MyLastHit Общие вопросы Delphi 4 30.08.2010 17:04
Как сделать событие на колёсико мыши? Аццкий прогер Помощь студентам 2 05.03.2009 08:08