javascript - Firefox 是否支持 SVG getIntersectionList?文档和测试不同意
问题描述
我正在为javascript中的大量SVG路径寻找一个简单的多边形测试点。getIntersectionList 似乎是正确的功能 - 但我在过去 10 年中看到的所有讨论都说它在 mozilla/firefox 中不受支持,包括 mozilla.org 文档:
https://developer.mozilla.org/en-US/docs/Web/SVG/SVG_1.1_Support_in_Firefox
但是我发现示例代码似乎可以正常工作并支持 getIntersectionList:
http://dahlström.net/svg/interactivity/intersection/sandbox_hover.svg
var list = root.getIntersectionList(rpos, null);
// Works
相比之下,另一个失败的示例说不支持相同的功能:
https://codepen.io/team/articulate/pen/HIFyi
input.value = svg.getIntersectionList(irect, null).length
// Uncaught TypeError: svg.getIntersectionList is not a function
我想让它在所有现代浏览器中都能正常工作——所以奇怪的是,Mozilla 似乎说它在实践中有时确实有效时不受支持。是否有任何来自 Mozilla 的更新文档说它已被添加?
解决方案
不,正如 Robert Longson 评论的那样,第一个 svg 示例也失败了 getIntersectionList 并且 Firefox 不支持它。
第一个示例失败: http://dahlström.net/svg/interactivity/intersection/sandbox_hover.svg
我很困惑,因为演示应用程序报告了鼠标经过的正确路径——但这取决于处理 mousemove 事件,而不是由于 getIntersectionList。
我只阅读了 getIntersectionList... 周围的代码,并没有使用调试器。
仍然有点奇怪 - 因为 mousemove 事件在 SVG hittest 中有一个非常好的点,但我无法使用坐标访问相同的测试。看起来我需要为 SVG 多边形进行自己的碰撞测试。
推荐阅读
- javascript - 如何使用 discord.js 获取不和谐服务器的成员数
- json - ValueQuerySet 的 Django 序列化
- java - Java - 为什么我的变量在 Java 中显示为 0?
- php - 如何在 tFPDF 中支持印地语字体
- flutter - 我怎样才能避免在颤动中再次加载相同的屏幕?
- ios - 有什么方法可以使用特定于应用程序的密码来检索 Apple DSID?
- excel - 使用循环播放 MP3 文件
- reactjs - 如何在谷歌云平台更新/修改已部署的静态 ReactJS 站点?
- r - 如何将 scale_y_datetime 与 difftime 数据一起使用?
- webpack - 通过 Webpack 将 SCSS 导入 PostCSS