d3js闪烁变换与g中的文本

时间:2017-03-23 18:20:09

标签: d3.js

我有以下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。

1 个答案:

答案 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