Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Как ловить mouse events для группы SVG форм, как единого целого?

#raphael #javascript #события


Разбираюсь с Raphael и SVG. Есть графический объект, состоящий из нескольких: напр.,
окружность и внутри неё квадрат поменьше. 
Как ловить мышиные события  для этой пары, будто она одно целое?
Пробовал:

вешать onmouseover на бОльший (окружность): когда курсор заходит на квадрат, происходит
onmouseout окружности;
Встречал «решение» рисовать поверх группы почти прозрачную форму, покрывающую всю
активную область, и вешать слушателя на неё. Как-то «неаккуратненько»..
делать из них set, и цеплять Raphael'овский mouseover( handler) на этот сет: срабатывает
для каждого из объектов сета.
    


Ответы

Ответ 1



Предлагаю такой вариант - отлавливать mouseenter и mouseleave для группы элементов (). Raphael в "базовой поставке" это не поддерживает (set не является группой), но есть расширения которые позволяют добавить в него возможность работы с группами, вот например это https://github.com/rhyolight/Raphael-Plugins. А дальше просто - берём группу и вешаем на неё mouseenter - mouseleave. Вот что-то типа этого.

Ответ 2



В SVG можно делать группы: На них можно вешать евенты.

Комментариев нет:

Отправить комментарий