我想要做的是onClick,更改费用以便节点被更高的力量击退,但这不起作用:
var force = d3.layout.force()
.gravity(.05)
.charge(function(d, i) { return i ? 0 : -2000; })
.nodes(nodes)
.size([w, h]);
svg.on("click", function() {
force = force.charge(function(d, i) { return i ? 0 : -10000; })
window.setTimeout(function() {
force = force.charge(function(d, i) { return i ? 0 : -2000; })
},3000);
});
答案 0 :(得分:1)
你所要做的就是调用force.start,它再次遍历声明的节点并更改它们上的费用和其他属性。
svg.on("click", function() {
force = force.charge(function(d, i) { return i ? 0 : -50000; })
force.start()
window.setTimeout(function() {
force = force.charge(function(d, i) { return i ? 0 : -2000; })
force.start()
},3000);
});