D3点击坐标是相对于页面不SVG - 如何将它们转换器(Chrome错误)(d3 click co

2019-06-23 19:09发布

当一个事件在比赛,d3.event.x给出了鼠标点击的x的位置坐标,但相对于整个HTML文档。 我试图使用jQuery的$(“SVG”)。位置()来获得SVG的实际位置,但这个回报公然错误的值。

有一些简单的方法来寻找与我正在俯瞰页面中的SVG的位置? 我使用的浏览器,顺便说一下,如果jQuery的问题是一个不起眼的浏览器错误。

编辑:我在Firefox和检查该$(“SVG”)位置()返回正确的坐标。 ?!?

Answer 1:

而不是使用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));
}


文章来源: d3 click coordinates are relative to page not svg - how to translate them (Chrome error)