D3.js 当鼠标位于svg下方而不是节点下方时,如何缩放svg语义图

D3.js 当鼠标位于svg下方而不是节点下方时,如何缩放svg语义图,d3.js,D3.js,我正在研究可折叠树图缩放。每当我想缩放时,我必须将鼠标指针保持在节点(圆)上,然后只有我才能进行放大和缩小。但当鼠标位于图形中的任何位置时,它应该能够做到这一点 缩放函数调用如下: var svg = d3.select("body").append("svg") .attr("width", width + margin.right + margin.left) .attr("height", height + margin.top + margin.bottom) .

我正在研究可折叠树图缩放。每当我想缩放时,我必须将鼠标指针保持在节点(圆)上,然后只有我才能进行放大和缩小。但当鼠标位于图形中的任何位置时,它应该能够做到这一点

缩放函数调用如下:

var svg = d3.select("body").append("svg")
    .attr("width", width + margin.right + margin.left)
    .attr("height", height + margin.top + margin.bottom)
    .append("g")
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")")
    .call(d3.behavior.zoom().x(x).y(y).scaleExtent([1,8]).on("zoom",zoom));
下面是放大和缩小的示例链接:


任何帮助都将不胜感激。

只需将矩形附加到SVG即可

svg.append('svg:rect')
    .attr('width', width + margin.right + margin.left)
    .attr('height', height + margin.top + margin.bottom)
    .attr('fill', 'white');

我不清楚你想做什么。您想用光标缩放一个节点还是图形中的任何位置?这是一种正常的缩放行为?实际上,上面的代码正在用光标缩放一个节点。但我正在寻找图形中的任何地方。如果您防止双击默认值并转换整个SVG--,它就会起作用。但是,要正确执行此操作,您必须检测自己是否在节点上单击或双击。是。SVG语义缩放。