Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   MouseEvent на canvas, перекрытый div? (https://javascript.ru/forum/dom-window/84506-mouseevent-na-canvas-perekrytyjj-div.html)

cupafupi 03.10.2022 17:27

MouseEvent на canvas, перекрытый div?
 
Для упрощения: есть два компонента, div и canvas. Оба занимают весь экран, div (с элементами управления) поверх canvas-а (с помощью z-index, div НЕ родитель canvas). Можно ли как-то передавать MouseEvent (клики и т.д.) на canvas?

Зачем это нужно: поверх канваса находятся элементы управления, получается что сам canvas занимает весь экран, а когда часть рисунка попадает под элементы управления - они просто перекрываются. Но проблема, что в том месте где поверх canvas'a есть div - он не отлавливает ивенты и им нельзя управлять, соответственно

voraa 03.10.2022 19:09

Только убирать div на весь экран, делать кучу отдельных элементов управления и каждый отдельно позиционировать поверх canvas.
Тогда клики на canvas будет обрабатывать он, а каждый элемент управления свои события.

MallSerg 03.10.2022 21:31

>> Можно ли как-то передавать MouseEvent (клики и т.д.) на canvas?

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

Просто тебе нужно ознакомится с механикой работы событий в браузере и делегировать захват событий вышестоящему узлу DOM чтобы получать события от div и canvas в одном месте.


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