我有一个D3 api,它显示了节点之间的某些关系。我想在这里应用force.drag()事件,在该事件中我将节点拖到某个位置并离开节点并将其停留在那儿。 ,它显示了节点之间的关系。有人可以从这里帮助我在此api中执行此事件吗?..
这是小提琴
var node = vis
.selectAll("g.node")
.data(data.nodes)
.enter()
.append("svg:g")
.attr("class", "node")
.call(force.drag);
Run Code Online (Sandbox Code Playgroud)
我认为应该在这里进行更改
解决方案包括在dragstart上将“固定”节点属性设置为true。
var drag = force.drag()
.on("dragstart", dragstart);
var node = vis.selectAll("g.node").data(data.nodes).enter().append(
"svg:g").attr("class", "node").call(drag);
function dragstart(d) {
d.fixed = true;
}
Run Code Online (Sandbox Code Playgroud)
参见此处:粘滞力布局
更新的小提琴:http : //jsfiddle.net/vuCAx/1/
文档:force.drag()
如果要在拖动后使被拖动的节点保持固定,请像在“粘性力”布局示例中一样,在dragstart上将fixed属性设置为true。