何时使用d3.transition()。each()?

时间:2018-12-28 08:46:45

标签: javascript d3.js

Object Constancy中,我对“更改”事件的代码非常困惑:

var menu = d3.select("#menu select")
    .on("change", change);

function change() {
  clearTimeout(timeout);

  d3.transition()
      .duration(altKey ? 7500 : 750)
      .each(redraw);
}

为什么要使用d3.transition()。each(),而不要使用transition.call()?我认为每次更改选项时都会触发redraw()函数。

切换到call()后,我丢失了动画,图形立即切换到动画的结尾。

1 个答案:

答案 0 :(得分:0)

  

d3.transition()。each()

选择要翻译的对象并将其翻译为每个对象,就像在每个对象上一个接一个地添加运动,这样您就可以看到动画

示例

您的函数将选择一个对象

  • 1移动到2
    结束显示到svg
    2移动到3
    结束显示到svg
  

transition.call()

如果使用call而不选择对象,它将把所有对象转换为结果的结尾,因为它将选择对象组并运行一个函数并将结果返回给它,所以您将看不到动画

示例

您的函数将选择所有对象

  • 1移至2
    2转到3
    将节目结束为svg

那是流