如何固定d3可变形旭日过渡?

时间:2015-10-20 07:23:59

标签: javascript d3.js sunburst-diagram

我使用以下网站的参考创建了一个可缩放的森伯斯特。 http://bl.ocks.org/mbostock/4348373

问题是我在最后一级有很多弧,即最外圈(近2000弧),这会减慢点击时的旭日过渡。

我尝试加固过程的一种方法是仅在用户潜入旭日(点击任何子弧)时显示最外面的弧。如果最外面的弧是第四个同心圆。仅在用户选择级别2/3时显示。

我创建了初始数据集,使最外面的弧的大小设置为0。然后点击我写了一个函数来将大小设置为1.但它不起作用。以下是链接http://jsfiddle.net/Claw_22/1400rdu0/6/

function sizeFunc(data){
  if (!data.children) {
    if (data.level=="3") {
      data.size="1";
    }
  }
  else {
    for (i=0;i<data.children.length;i++) {
      sizeFunc(data.children[i]);
    }
  }
}

请告诉我们如何才能实现这一目标。 (实现更快性能的替代解决方案也很有帮助。)

1 个答案:

答案 0 :(得分:0)

您可以在单击功能中将转换持续时间更改为最小级别。像下面这样的东西

function click(d) {
path.transition()
  .duration(100) //sets the delay in transition
  .attrTween("d", arcTween(d));}