2016-02-17 6 views
1

Я определил путь с непрозрачностью 0, который включает в себя несколько элементов. Целью этого является то, что, когда мышь находится над этим путем, элемент появляется (или исчезает, если мы покинули путь). Моя проблема в том, что путь находится поверх холста, я не могу нажимать на эти элементы и ожидать, что смогу обработать событие.(Raphael) Щелкните путь прохода

Что было бы лучшей стратегией для решения этой проблемы?

  • Я попытался поместить путь назад(); но когда я нависаю над элементом, это похоже на то, что я покинул путь.
  • Я попытался поместить элемент сверху, но тот же результат, что и раньше.
  • Использование функции ispointinsidepath(), а затем получение координат точки, которую я щелкнул, кажется брезгливым, так как размер элемента не является постоянным.

Спасибо

+1

что вы подразумеваете под «путём»? можете ли вы сделать [jsFiddle] (https://jsfiddle.net), чтобы продемонстрировать? – thedarklord47

ответ

1

Вы можете поставить обработчики по каждому из элементов, и справиться с ней таким образом. Может быть даже немного легче, если с помощью оснастки, а не Рафаэль, как вы можете использовать группы, то (и не нужны несколько обработчиков событий), но при условии, Рафаэль является требованием вы могли бы это сделать ...

var r = paper.rect(50,50,200,200).attr({ fill: 'blue', opacity: '0'}).hover(hoverover, hoverout) 
var c1 = paper.circle(100,100,30).attr({ fill: 'red' }).click(clickFunc).hover(hoverover, hoverout) 
var c2 = paper.circle(200,200,30).attr({ fill: 'blue' }).click(clickFunc).hover(hoverover, hoverout) 

function hoverover() { r.attr({ opacity: 1 }) } 
function hoverout() { r.attr({ opacity: 0 }) } 
function clickFunc() { alert('clicked')} 

jsfiddle