У меня есть сила сети что-то похожее на это:Drag не работает должным образом после перехода узла, D3
На нажатие кнопки Перевожу узлы в таком же положении:
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 не обновлялся.
Любые идеи?
Его просто сила тяжести, выполняющая свою работу ... Но это не обязательно то же самое место. Если вы перетащите узел так, чтобы треугольник узлов вращается, например, а затем отпустите его, он вернется в центр, но останется повернутым. –
Вы нажали кнопку? попробуйте эту обновленную скрипту: http://jsfiddle.net/Brb29/7/ – thatOneGuy
Да, я сделал, и я попробовал вашу новую версию ... Мой предыдущий комментарий по-прежнему применяется. Попробуйте установить значение силы тяжести на ноль и задайте начальные значения x и y для узлов (чтобы они не выходили из страницы и никогда не возвращались). –