坐标变换,在SVG内Firefox滚动
-
27-09-2019 - |
题
我试图计算正确的鼠标的坐标,在用户的协调的空间,在SVG文件内Javascript code当滚动存在时,SVG文件是从内的火狐。但它不是相当正确的。这是需要获得基于SVG提示正确绘制甚至当SVG是滚动的水平或垂直。
我渴望拥有的坐标变换是正确的跨即和Firefox浏览器。此外,我想这样做与一个单一来源Javascript+SVG解决方案,希望不需要浏览器的具体条件代码。我目前正在使用火狐3.5.10,但是我会考虑的升级到较新的版本的火狐,我没有测试即呢。
问题是我遇到的协调偏移量滚动:鼠标坐标变换不足的时候滚动来存在的SVG元件的内部火狐。作为一个调试的援助,以图坐标变换,我正与一个简单的SVG文件,该文件包含Javascript处理程序,所有在一个文件,这只是画十字在鼠标为SVG线的对象。找到它公布 svg_cross_hairs.svg.如果你装载这个文件成FireFox和缩短FireFox窗口下降,直到滚动出现,然后滚动的水平或垂直的滚动中,你会发现,十字绘制的Javascript抵消的数额的水平或垂直的滚动的金额,这是不正确的,以便得出一个提示目的上或附近哪里鼠标实际上是。
我看到的 Firefox:获得鼠标左上角的视 问题谈 scrollTop 财产。
msg#00056 澄清,还有混乱的含义 element.{pageX,pageY,clientX,clientY}
属性和 element.getscreenCTM
法。
是有一个更清洁的方式达成正确的鼠标的坐标,在用户的协调的系统?
解决方案
你可以使用 evt.pageX
/ evt.pageY
或 window.pageXOffset
/ window.pageYOffset
抵达,在一些作品即使svg滚动。