xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Neumann <neum...@karto.baug.ethz.ch>
Subject Re: Accessing event coordinates when zoomed
Date Tue, 13 Jun 2006 14:57:21 GMT
Hi Dylan,

.getScreenCTM() is your friend here.

Here is some code:

function calcCoord(evt) {
    var svgPoint = document.documentElement.createSVGPoint();
    svgPoint.x = evt.clientX;
    svgPoint.y = evt.clientY;
    var matrix = evt.target.getScreenCTM(); //alternatively use a 
different node reference here instead of evt.target, f.e. if you want to 
calculate to a different node in the hierarchy
    svgPoint = svgPoint.matrixTransform(matrix.inverse());
   return svgPoint;

If you need standard tooltips, Batik already provides tooltips.

Unfortunately, the Adobe SVG viewer version 3 neither supports tooltips 
nor .getScreenCTM.

For this viewer there is a workaround:

And here is a tooltip example that works in all browsers:

All the best,

Dylan Browne wrote:

>(Not strictly a Batik Posting, although I am using Batik DOM to create my
>SVG, so I hope that almost counts...!)
>I am using JavaScript "evt.clientX" and "evt.clientY" (I have also tried
>"screenX") to retrieve the co-ordinates of a mouseover event, and some extra
>code then displays a label using these coordinates. (In essence, I'm
>creating a souped-up tool-tip). 
>This works fine in standard view, but once the SVG document has been zoomed,
>the co-ordinates returned are no longer relative to the original
>document,(as, of course, I would expect :). I'd be grateful if someone could
>point me towards the correct JS syntax so the coordinates I return are in
>relation to my zoomed/panned document.
>Thanks a lot in advance for any help,
>To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
>For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org

Andreas Neumann
Institute of Cartography
ETH Zurich
Wolfgang-Paulistrasse 15
CH-8093  Zurich, Switzerland

Phone: ++41-44-633 3031, Fax: ++41-44-633 1153
e-mail: neumann@karto.baug.ethz.ch
www: http://www.carto.net/neumann/
SVG.Open: http://www.svgopen.org/
Carto.net: http://www.carto.net/

To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org

View raw message