mortalc
mortalc

Reputation: 575

Event when two SVG elements touch

Is it possible in SVG, using any method, to call an even if two specific elements touch? Or would I have to code the long way, and figure out if their borders touch with complicated maths?

Upvotes: 13

Views: 7363

Answers (2)

Erik Dahlström
Erik Dahlström

Reputation: 60976

There are actually four methods available on the outermost SVG element for intersection handling in the SVG 1.1 DOM:

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

Unfortunately I think the cross-browser support for these methods is still not great.

Upvotes: 14

Mike Baranczak
Mike Baranczak

Reputation: 8374

I don't think there are any built-in methods, but this guy wrote a Javascript library that detects collisions:

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

Looks pretty slick. It doesn't work in Firefox 3.6, but works in Chrome.

EDIT:

OK, there actually is a built-in method, but I don't know if it can be applied to anything besides rectangles. Erik Dahlström, the author of that post, hangs out on Stackoverflow, so he might have something to say about this.

Upvotes: 2

Related Questions