我在检测SVG路径元素上的鼠标悬停事件时遇到问题。似乎路径元素的strokeWidth越小,我在检测鼠标悬停时的成功就越少。SVG路径命中测试
此外,我使用jquery-svg插件来执行绘图。
下面是尝试检测路径元素上使用jQuery的鼠标悬停事件的小提琴。 Mouseover Fiddle
下面是一个尝试通过将mousemove监听器附加到svg来检测,然后使用document.getElementFromPoint进行检测的小窍门。 getElementFromPoint Fiddle
这些似乎都无法可靠地工作,特别是如果鼠标移动得很快。是否有可能使这些更敏感的更好地检测鼠标悬停?或者更好的做法呢?
http://www.w3.org/TR/SVG11/struct.html#__svg__SVGSVGElement__getIntersectionList是一个SVG DOM API,用于获取与给定矩形相交的所有元素(在本例中为鼠标移动线)。 –
没错,但有两个问题:检查两点之间的整个矩形,而不仅仅是线条,但这并不坏;另一个是[它尚未在Firefox中实现](https://bugzilla.mozilla.org/show_bug.cgi?id=501421) –
后者是我最感兴趣的,我刚刚使用@Eriks建议测试了我的解决方案,并且它在Firefox – mikew