d3.js-添加缩放和平移可防止拖动节点
我已使用以下代码(片段)将缩放功能添加到图形中: 这正如预期的那样有效。我可以缩放或平移整个图形。但是,我无法再影响节点的位置,因为任何“单击”都会触发平移 我的拖动定义如下:d3.js-添加缩放和平移可防止拖动节点,d3.js,zooming,D3.js,Zooming,我已使用以下代码(片段)将缩放功能添加到图形中: 这正如预期的那样有效。我可以缩放或平移整个图形。但是,我无法再影响节点的位置,因为任何“单击”都会触发平移 我的拖动定义如下: dragStart = function(d) { d.fixed = true; }; drag = d3.drag() .on("dragstart", dragStart); node = svg.selectAll(".node") .data(graph.nodes) .en
dragStart = function(d) {
d.fixed = true;
};
drag = d3.drag()
.on("dragstart", dragStart);
node = svg.selectAll(".node")
.data(graph.nodes)
.enter()
.append("rect")
.attr("class", "node")
.attr("width", function (d) { return d.width - 2 * pad; })
.attr("height", function (d) { return d.height - 2 * pad; })
.attr("rx", 5).attr("ry", 5)
.call(drag);
我不确定我做错了什么,但我的实现与我能找到的具有类似功能的所有示例一致。如果有任何帮助,我们将不胜感激。我最终禁用了平移功能,通过禁用缩放时的单击事件使其工作:
selection.call(zoom)
.on("mousedown.zoom", null)
selection.call(zoom)
.on("mousedown.zoom", null)