我大致熟悉d3中拖动的工作方式.但是我最近发现了一些让我感到困惑的事情.
通过代码创建af orce有向图我无法按照代码来处理拖动周围的节点:
function dragstarted(d) {
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
d.fx = d.x;
d.fy = d.y;
}
function dragged(d) {
d.fx = d3.event.x;
d.fy = d3.event.y;
}
function dragended(d) {
if (!d3.event.active) simulation.alphaTarget(0);
d.fx = null;
d.fy = null;
}
Run Code Online (Sandbox Code Playgroud)
知道我们为什么要在这里用dragstarted和dragended检查if语句吗?
我尝试删除if条件并没有真正看到与力导向图有太大差别.也就是说,而不是
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
Run Code Online (Sandbox Code Playgroud)
我放
simulation.alphaTarget(0.3).restart();
Run Code Online (Sandbox Code Playgroud)
并没有看到太大的差异.
d3.js ×1