我使用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