У меня есть диаграмма пузырьков, основанная на этом учебнике.
Я включил перетаскивание пузырьков со следующим кодом. Это делает отдельные круги перетаскиваемыми, но при перетаскивании круга другие круги не настраиваются автоматически. Я использую алгоритм пакетного круга, пожалуйста, сообщите мне, возможно ли это с помощью этого алгоритма.
Это мой код для перетаскивания:
// draggable
if(this.dragging){
var drag = d3.behavior.drag()
.on("drag", function( d, i) {
var selection = d3.selectAll( '.selected');
if( selection[0].indexOf( this)==-1) {
selection.classed( "selected", false);
selection = d3.select( this);
selection.classed( "selected", true);
}
selection.attr("transform", function( d, i) {
d.x += d3.event.dx;
d.y += d3.event.dy;
return "translate(" + [ d.x,d.y ] + ")"
})
// reappend dragged element as last
// so that its stays on top
this.parentNode.appendChild( this);
d3.event.sourceEvent.stopPropagation();
});
node.call( drag);
}