我使用Raphael JS創建一個帶有區域和文本標籤的SVG地圖。當您將鼠標移動到該區域上時,我希望該區域突出顯示。Raphael JS:mouseover/mouseout - 文本標籤問題
我現在有這個工作,但是當我將鼠標移動到標籤上(在該區域的中心)時,該區域的鼠標事件被觸發,所以該區域再次不被注意。
有沒有什麼辦法可以防止這種情況發生或解決方法?
我使用Raphael JS創建一個帶有區域和文本標籤的SVG地圖。當您將鼠標移動到該區域上時,我希望該區域突出顯示。Raphael JS:mouseover/mouseout - 文本標籤問題
我現在有這個工作,但是當我將鼠標移動到標籤上(在該區域的中心)時,該區域的鼠標事件被觸發,所以該區域再次不被注意。
有沒有什麼辦法可以防止這種情況發生或解決方法?
在文本上創建一個不透明度設置爲0的矩形,並在該矩形上附加事件處理程序。您可以使用文本的getBBox()
來計算矩形的尺寸。
該區域是多邊形,所以矩形不夠好。但是我發現我可以使用set來做這件事。我創建了一組每個區域+標籤,並將事件處理程序附加到該集合,而不是該區域 – Dylan 2011-06-16 09:53:19
通過Paper#set創建一個集合是我工作的方法。例如:
var st = paper.set();
st.push.apply(st, vectors); // `vectors`: my array of "hoverable" vectors
st.push(text); // `text`: my text vector for `vectors`
st.hover(function() {
text.show();
}, function() {
text.hide();
});
我使用帶** mousenter **和** mouseleave **的jQuery,它「對SVG來說工作得很好」(使用'raphaelElement.node')。它可能會或可能不會與IE/VML一起使用。 – 2012-12-30 01:41:05