Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

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

p.s. ::selection тоже отруби: в ФФ, оказывается, он срабатывает сквозь пойнтер-ивентс.
__________________
Работаю. В этот раз за деньги.
Жду ваши искренние спасибы на яндекс-кошелек: 410011068154587

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переадресовать событие ребенка на родителя 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 09:08


11:50.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru