1
我想使用矩形选择框(使用this example)在mousemove上的我的d3树中选择节点。当svg处于正常范围时,它工作正常。如果我增加或减少比例值,它不会按预期工作。使用矩形选择框在缩放期间选择SVG元素不工作:d3.js
var translateCoords = d3.transform(d3.select("#svgGroup").attr("transform"));
translateX = translateCoords.translate[0];
translateY = translateCoords.translate[1];
scaleX = translateCoords.scale[0];
scaleY = translateCoords.scale[1];
//where svgGroup is the main svg g element,
radius is radius of inner nodes
d3.selectAll('g.node-element >circle.inner').each(function(state_data, i) {
var tCoords = d3.transform(d3.select(this.parentNode).attr("transform"));
tX = tCoords.translate[0];
tY = tCoords.translate[1];
if(
!d3.select(this).classed("selectedNode") &&
tX+translateX*scaleX -radius>=d.x && tX+translateX*scaleX -radius<=parseInt(d.x)+parseInt(d.width)&&
tY+translateY*scaleY-radius>=d.y && tY+translateY*scaleY+radius<=d.y+d.height
) {
d3.select(this.parentNode)
.classed("selection", true)
.classed("selectedNode", true);
}
});
工作:)谢谢:) – Jerry