【问题标题】:Event when two SVG elements touch两个 SVG 元素接触时的事件
【发布时间】:2011-07-20 18:42:39
【问题描述】:

是否可以在 SVG 中使用任何方法调用一个即使两个特定元素接触的情况?还是我必须编写很长的代码,并弄清楚它们的边界是否涉及复杂的数学?

【问题讨论】:

    标签: javascript dom svg intersection


    【解决方案1】:

    在最外层的 SVG 元素上实际上有四种方法可用于 SVG 1.1 DOM 中的交集处理:

    1. getIntersectionList
    2. getEnclosureList
    3. checkIntersection
    4. checkEnclosure

    不幸的是,我认为这些方法的跨浏览器支持仍然不是很好。

    【讨论】:

    • 所以,看起来你可以检查任意形状和矩形的交集,但你不能检查两个非矩形。对吗?
    • 是的,没错,上面没有为你提供完整的布尔路径操作。
    • 看起来这些元素中的任何一个都没有在任何浏览器中实现。至少没有任何工作版本。
    • @AshBlue 听起来您有一个问题要问,但就像我写的那样,这些方法尚未广泛实施。 Opera 和 IE9+ 支持 AFAIK。
    • 浏览器支持的当前(13 年 10 月)状态:Chrome、Safari、IE9+ 支持它们。火狐currently does not implement these methods.
    【解决方案2】:

    我认为没有任何内置方法,但是这家伙写了一个检测冲突的Javascript库:

    http://www.kevlindev.com/geometry/2D/intersections/index.htm

    看起来很漂亮。它不适用于 Firefox 3.6,但适用于 Chrome。

    编辑:

    好的,实际上有is a built-in method,但我不知道它是否可以应用于矩形以外的任何东西。该帖子的作者 Erik Dahlström 在 Stackoverflow 上闲逛,因此他可能对此有话要说。

    【讨论】:

    • 只是值得注意的是,最后一个链接看起来不再有效
    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2014-07-27
    • 2012-07-11
    • 2012-01-23
    • 1970-01-01
    • 2016-10-21
    相关资源
    最近更新 更多