D3的转换 - 暂停和恢复(D3 transitions - pause and resume)

2019-08-19 23:49发布

我想了解“暂停”和“恢复”从这个D3的转换指南 。 虽然我知道如何“暂停”的工作,当谈到“简历”,我有点失去。 我不能让笔者的解释意义,特别是“线性”或第一恢复解释 。 我的问题是什么是e.attr("T",0);.attr("T",1); 究竟在做什么?

我申请的恢复功能,为这里的视频或波形例如播放头: 的jsfiddle

Answer 1:

代码e.attr("T",0).attr("T",1)设置为属性所选择的节点。 也就是说,创建一个新的属性为“T”,并设置。 这样做的目的是纯粹是为了便于停止和恢复 - 0表示开始前和结束时的过渡1。

如果这个属性包含在转型期,价值将逐渐从0改为1。作为本教程的作者指出,这可以用来在任何时间点获得的过渡状态 - 你只需要查询“T”的价值。 如果您保存特定转变,以及,你可以使用值停下来在任何时候恢复。

请注意,有没有什么特别的“T”。 你可以用任何(未使用)的属性名称。 其目的仅仅是有告诉多远转型已取得进展的一些方法。



Answer 2:

我一直在挣扎与此完全相同的问题太多,我觉得有上已经扔我送行的例子一个错字。 当作者写道:

var e = d3.select("#time");
e.attr("T",0);

c.transition()
    .duration( time )
    .ease( "linear" )
    .attr("T",1);

它好像e将更新其T的属性为c的转变,这是没有意义的。 相反,我认为它应该是如下:

var e = d3.select("#time");
e.attr("T",0);

e.transition()
    .duration( time )
    .ease( "linear" )
    .attr("T",1);

现在,我们选择#time元件,其设置的初始值T属性到0然后添加对改变所述相同元素的过渡T1在指定的持续时间的过程。



文章来源: D3 transitions - pause and resume