Re: Pointer Events in SVG

You can readily get the screen coordinates and transform them back 
into the SVG coordinate system, e.g.

function locateEvent(event)
   var target =;
   var m = target.getScreenCTM();
   var pt = document.documentElement.createSVGPoint();
   pt.x = evt.clientX;
   pt.y = evt.clientY;
   pt = pt.matrixTransform(m.inverse());
   return pt;

But whilst getScreenCTM() and inverse() are available in SVGT 1.2, 
it seems that createSVGPoint() and matrixTransform() aren't, at 
least based upon searching through:

Am I missing something, or this is intentional?

I agree that it would be nice to have an easier way to getting the 
event location in the SVG coordinate system.

  Dave Raggett <>

On Wed, 24 Oct 2007, Daniel Herzog wrote:

> Hi,
> just to quickly introduce myself, I work at Vodafone and contributed to the
> WICD Testsuite.
> I would like to know, is there a way to get the pointer-position in
> reference to an SVGs coordinate-system? Please take a look at the following
> testfile (with Opera 9.23, Firefox2, Safari3):
> The blue rect is part of an SVG that has a viewBox of only 20 x 6, but the
> whole thing is in a container much bigger and is therefore scaled up. When
> hovering the SVG you see some properties of mouse-events below it, but none
> of them quite fit
> the SVGs coordinate system. The maximum x-values for that would be 20 then.
> I think it would be important to have an easy way for getting to these values,
just thinking of a simple mousefollow, or slider controls, for example.
> Thanks a lot,
> Daniel
> <>

Received on Thursday, 25 October 2007 08:55:47 UTC