我试图理解“暂停”和“简历”的D3转换从这个指南。虽然我理解“暂停”是如何工作的,但在谈到“简历”时,我一点也不迷路。我无法理解作者的解释,特别是“线性”或第一次简历解释。我的问题是,e.attr("T",0);和.attr("T",1);到底在做什么?
我正在将简历功能应用于视频或波形示例的游戏头上:小提琴
发布于 2013-04-06 11:09:14
代码e.attr("T",0)和.attr("T",1)为所选节点设置属性。也就是说,创建并设置了一个新的属性"T“。这样做的目的纯粹是为了方便停止和恢复-0代表开始之前的过渡,1在结束。
如果该属性包含在转换中,则值将逐渐从0更改为1。正如本教程的作者所指出的,这可以用于在任何时间点获取转换的状态--您只需查询"T“的值。如果还保存了特定的转换,则可以在任何时候使用该值暂停和恢复。
请注意,"T“没有什么特别之处。您可以使用任何(未使用的)属性名称。其目的只是有某种方法来判断过渡的进展有多大。
发布于 2015-01-08 18:49:43
我也一直在努力解决这个确切的问题,我认为这个例子有个错误,让我很失望。提交人写道:
var e = d3.select("#time");
e.attr("T",0);
c.transition()
.duration( time )
.ease( "linear" )
.attr("T",1);似乎e将以c转换的形式更新其T属性,这是没有意义的。相反,我认为应该这样做:
var e = d3.select("#time");
e.attr("T",0);
e.transition()
.duration( time )
.ease( "linear" )
.attr("T",1);现在,我们选择#time元素,将其T属性的初始值设置为0,然后将转换添加到在指定持续时间内将T更改为1的同一元素e (而不是c)。
https://stackoverflow.com/questions/15845506
复制相似问题