MouseEvent на canvas, перекрытый div?
Для упрощения: есть два компонента, div и canvas. Оба занимают весь экран, div (с элементами управления) поверх canvas-а (с помощью z-index, div НЕ родитель canvas). Можно ли как-то передавать MouseEvent (клики и т.д.) на canvas?
Зачем это нужно: поверх канваса находятся элементы управления, получается что сам canvas занимает весь экран, а когда часть рисунка попадает под элементы управления - они просто перекрываются. Но проблема, что в том месте где поверх canvas'a есть div - он не отлавливает ивенты и им нельзя управлять, соответственно |
Только убирать div на весь экран, делать кучу отдельных элементов управления и каждый отдельно позиционировать поверх canvas.
Тогда клики на canvas будет обрабатывать он, а каждый элемент управления свои события. |
>> Можно ли как-то передавать MouseEvent (клики и т.д.) на canvas?
В принципе такое возможно. На странице браузера используется "механизм всплытия событий" это когда событие вызывается по очереди у всех вышестоящих элементов DOM дерева. Так же существуют способы прервать всплытие события. Просто тебе нужно ознакомится с механикой работы событий в браузере и делегировать захват событий вышестоящему узлу DOM чтобы получать события от div и canvas в одном месте. |
Часовой пояс GMT +3, время: 20:29. |