d3.js – 在节点点击上接收D3力布局图

前端之家收集整理的这篇文章主要介绍了d3.js – 在节点点击上接收D3力布局图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个重新集中点击的力图.

我跟随this作为基础:

我尝试调整click函数来设置d.fixed = true,并为d.x和d.y分配固定点.

但是,我需要为所有其他节点转为d.fixed = false.此外,节点在点击时不会转换到中心.

我的问题是如何将所有其他固定属性设置为false,然后使用新中心重绘力图?

我准备了一个例子here

点击功能非常简单:

function click(d) {
        d.fixed=true;
        d.x=10;
        d.y=10;
        update();
    }

我尝试将此添加函数中:

root.forEach(function (d) { d.fixed = false; });

解决方法

您可以使用force.nodes()访问节点并迭代以将fixed属性设置为false.
force.nodes().forEach(function(d) { d.fixed = false; });

然后更新图表.我将您的示例here分叉并添加了一个双击侦听器,重新启动了力布局.问候,

猜你在找的JavaScript相关文章