我有以下https://jsfiddle.net/zzxpw3o0/
function dragstart(d) {
d3.event.sourceEvent.stopPropagation();
d3.select(this).classed("fixed", d.fixed = true);
}
拖动圆圈时,我会发现奇怪的闪烁
如果我删除包裹圆圈的g并且文本都很好。
https://jsfiddle.net/e2t2z8uj/
想知道我是否可以修复闪烁。我有大约1k圈的文字标签,所以我不想为圆圈+文字创建2k svg:g。
答案 0 :(得分:2)
只需将来自圈子的force.drag
功能转移到群组,就像这样:
var nodes = svg.selectAll("g")
.data(d3.values(nodes))
.enter()
.append("g")
.call(force.drag); // <= move that line here
nodes.append("circle")
.attr("r", 10)
.style("fill", function (d, i) { return colors(i); })
// .call(force.drag); // <= remove this line
更新的小提琴是here。