bal*_*law 30 javascript svg google-chrome click d3.js
当一个事件在进行中时,d3.event.x给出鼠标单击的x坐标的位置,但是相对于整个HTML文档.我尝试使用jQuery的$('svg').position()来获取svg的实际位置,但这会返回明显错误的值.
有没有一些简单的方法来找到svg相对于我忽略的页面的位置?顺便说一下,我正在使用Chrome,以防jQuery问题是一个模糊的浏览器错误.
编辑:我在firefox和$('svg')中检查了这个.position()返回正确的坐标.?!?
mbo*_*ock 56
而不是使用d3.event,这是浏览器的本机事件,使用d3.mouse获取相对于某个容器的坐标.例如:
var svg = d3.select("body").append("svg")
.attr("width", 960)
.attr("height", 500);
var rect = svg.append("rect")
.attr("width", "100%")
.attr("height", "100%")
.on("mousemove", mousemove);
function mousemove(d, i) {
console.log(d3.mouse(this));
}
Run Code Online (Sandbox Code Playgroud)