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