SVG路径命中测试
SVG Path Hit-Testing
我在检测SVG路径元素上的鼠标悬停事件时遇到问题。路径元素的strokeWidth似乎越小,我检测鼠标悬停的成功率就越低。
此外,我正在使用jquery svg插件来绘制。
下面是在path元素上使用jquery mouseover事件进行检测的过程。鼠标指针
下面是通过将mousemove侦听器附加到svg,然后使用document.getElementFromPoint来进行检测的过程。getElementFromPoint Fiddle
这两种方法似乎都不可靠,尤其是当鼠标移动得很快时。有没有可能使这两种方法中的任何一种更敏感,以更好地检测鼠标?或者也许是更好的方法?
浏览器的工作方式不是连续获得mouseover
事件,而是每次操作系统更新光标位置时都会获得一个事件。如果鼠标移动得很快,你会得到一个相隔几个像素的事件。鼠标不会在文档上滑动,而是跳跃。下面是一个显示每个事件发生位置的jsfiddle。您无法为光标的两个连续位置之间的所有元素获取mouseover
事件。
您可以做一些不同的事情:记住mousemove
事件的上一个位置,计算该点与当前鼠标位置之间的线,并计算该线与文档中所有其他形状之间的所有交点。但这将是资源密集型的,因为没有API可供使用,你必须自己计算交集。有一个图书馆可以帮助你。
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- Javascript:使用绝对路径设置img src
- 如何在d3.js中返回路径的y坐标
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 复制图像路径以单击它
- 从模块内部访问Express装载路径
- 测试Angular Service解决错误回调中的promise
- SVG路径命中测试
- 如何解释BusterJS测试路径中的通配符
- 如何模拟具有绝对路径的请求以进行JS测试
- Jest:找不到要测试的模块内部所需的模块(相对路径)
- 测试/验证/评估函数中每条路径的结果
- 使用通配符路径测试代码覆盖率
- 从开发到测试再到生产的API路径不同.我如何避免在部署之间进行更改
- 在ReSharper JavaScript测试中共享引用路径
- Regex测试url和文件路径的重复单词
- 因果报应测试将不必要的文件夹添加到路径中