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

标签 javascript d3.js

我有一个 D3 api,它显示了节点之间的某种关系。我想在这里应用 force.drag() 事件,我将把节点拖到一个位置并离开节点,它会留在那里。我有一个在这里工作 fiddle ,它显示了节点之间的关系。任何人都可以从这里帮助我在这个 api 中做这个事件吗? ..

这是 fiddle

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;
}

参见此处:Sticky Force Layout

更新 fiddle :http://jsfiddle.net/vuCAx/1/

文档:force.drag()

If you want dragged nodes to remain fixed after dragging, set the fixed attribute to true on dragstart, as in the sticky force layout example.

关于javascript - 如何在 D3 中添加强制拖动事件并使节点停留在我离开的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585962/

相关文章:

javascript - 从 D3 中的多个 csv 文件导入数据

JavaScript/jQuery 如何选择动态创建的所有音频元素?

javascript - 在 Jest 测试中使用expect.assertions(x) 与使用fail()

javascript - 无法在 'requestAnimationFrame' : The callback provided as parameter 1 is not a function. 上执行 'Window'

javascript - 如何缩放 D3 气泡图中的文本

javascript - D3 将 x 轴标签定位在矩形内并旋转 90 度

javascript - 如何使用 WebStorm 配置 Mocha

Javascript - 使用for循环更改标题字体大小

d3.js - 在这个 d3.drag 示例中保留本地偏移量是什么?

d3.js - 如何在 d3.js 中创建新的 scale() 函数?我想创建一个累积分布函数