【发布时间】:2015-10-06 13:41:51
【问题描述】:
我有一个类似这样的力量网络:
按下按钮时,我将节点平移到相同的位置:
function positionnodes(){
force.stop();
nodes.each(function(d){
d.fixed = true;
d.x = 100;
d.y = 100;
}).transition().duration(1000).attr("transform", function(d)
{
//console.log(d.hasRelationship);
//console.log(d.y);
return "translate(" + 100 + "," + 100 + ")";
});
edges.transition().duration(1000).attr("x1", function (d) {
console.log(d.source.x)
return d.source.x;
})
.attr("y1", function (d) {console.log(d.source.y)
return d.source.y;
})
.attr("x2", function (d) {console.log(d.target.x)
return d.target.x;
})
.attr("y2", function (d) {console.log(d.target.y)
return d.target.y;
});
//setTimeout(function(){ force.start();},1000);
}
我的问题是,在我这样做之后,我去拖动节点,即使我已经设置了节点位置,它也会跳回到之前的位置。 d.x/d.y 好像没有更新一样。
有什么想法吗?
【问题讨论】:
-
它只是重力在起作用......但它不一定是同一个地方。例如,如果您拖动一个节点使节点的三角形旋转,然后释放它,它将返回中心但保持旋转。
-
你点击按钮了吗?试试这个更新的小提琴:jsfiddle.net/Brb29/7
-
是的,我尝试了您的新版本...我之前的评论仍然适用。尝试将重力设置为零并为节点设置初始 x 和 y 值(这样它们就不会尖叫离开页面并且永远不会回来)。
-
这不是我的问题。我的问题是在我单击按钮之后尝试移动其中一个节点,而我没有单击的节点似乎移回了先前的位置,而不是停留在我放置它们的位置。我不认为它与重力有任何关系
-
我不认为!=我不知道。试试看。
标签: javascript d3.js