seems like a defect, depending on browser zoom level.. raised an issue http://code.google.com/p/chromium/issues/detail?id=81995
--- In [email protected], "babu.sreekanth" <babu.sreekanth@...> wrote: > > Hello, > > Please see the example at http://jsfiddle.net/DgMDV/1/ > > sample output: > offset based on svg x:12 y:34 > mouse click based on screen x:22 y:38 > mouse coord based on svg x:10 y:4 > The above sample output is generated when i click on the rectangle on the > top-left corner. > > As far as I understood, getScreenCTM interface provides the transformation > matrix for the element (svg here). I got it as the first line. Second line > indicate the mouse coordinate based on the screen coordinate. When I apply > the transformation matrix to the mouse click, I expect the point will be > translated to svg coordinate. That value is the 3 rd line above. I am not > sure that it is corrct. The rectangle has a y coordinate 10, and the click > event is only availbake within the rectangle. So how could the mouse coord > based on svg go below 10?? > > thanks, bsr. > > ========== > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE HTML><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> > <head> > </head> > <body> > <meta http-equiv="content-type" content="application/xhtml+xml; > charset=utf-8" /> > <h1>sdsd</h1> > <svg xmlns="http://www.w3.org/2000/svg" > xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" > height="200"> > <g fill="none" stroke="black" stroke-width="1" > > <!-- Draw the axes of the original coordinate system --> > <line x1="0" y1=".5" x2="400" y2=".5" /> > <line x1=".5" y1="0" x2=".5" y2="150" /> > </g> > > <g > > <rect class="drag resize" x="10" y="10" width="100" height="50" > fill="#c66" /> > </g> > </svg> > > <h2 id="op"></h2> > > <script type="text/javascript" src="vb.js"></script> > </body> > </html> > > > > ============ vb.js ========== > > var svg = document.getElementsByTagName('svg')[0]; > var svgNS = svg.getAttribute('xmlns'); > var pt = svg.createSVGPoint(); > var el1 = document.getElementsByTagName('rect')[0]; > > var log_svgcursorPoint, > log_mouseclick, > log_mousecoord; > > > function svgcursorPoint(evt){ > pt.x = evt.clientX; pt.y = evt.clientY; > var a = svg.getScreenCTM(); > log_svgcursorPoint = "offset based on svg"+ " x:" + a.e +" y:" + a.f; > var b = a.inverse(); > return pt.matrixTransform(b); > }; > > (function(el){ > el.addEventListener('mousedown',function(e){ > log_mouseclick = "mouse click based on screen"+ " x:" + e.clientX > +" y:" + e.clientY ; > var svgmouse = svgcursorPoint(e); > log_mousecoord = "mouse coord based on svg"+ " x:" + svgmouse.x > +" y:" +svgmouse.y; > document.getElementById('op').innerHTML = log_svgcursorPoint + > "<br>" + log_mouseclick + "<br>" + log_mousecoord; > },false); > })(el1); > ------------------------------------ ----- To unsubscribe send a message to: [email protected] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ----Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: [email protected] [email protected] <*> To unsubscribe from this group, send an email to: [email protected] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

