繁体   English   中英

如何在D3中添加强制拖动事件并使节点停留在我离开的地方?

[英]How to add a force drag event in D3 and make the node stay where i leave it?

我有一个D3 api,它显示了节点之间的某些关系。我想在这里应用force.drag()事件,将节点拖到某个位置并离开节点并将其停留在这里。 ,这显示了节点之间的关系。有人可以从这里帮助我在此api中进行此事件吗? ..

这是小提琴

var node = vis
  .selectAll("g.node")
  .data(data.nodes)
  .enter()
  .append("svg:g")
  .attr("class", "node")
  .call(force.drag);

http://jsfiddle.net/vuCAx/

我认为应该在这里进行更改

解决方案包括在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;
}

参见此处: 粘滞力布局

更新的小提琴: http : //jsfiddle.net/vuCAx/1/

文档: force.drag()

如果要在拖动后使被拖动的节点保持固定,请像在粘滞力布局示例中一样,在dragstart上将fixed属性设置为true。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM