d3.js中的转换队列;一个接一个

我试着在d3.js中做链式转换。为此,我在数组中定义一组转换并尝试使用.each("end", function())递归调用函数,以在前一个完成时开始转换,但是我还没有结果。的动作d3.js中的转换队列;一个接一个

animations = [ function(){ console.log(1); return circle.transition().duration(2e3).attr("cy", Math.random()*300); } , 

function(){ console.log(2); return rect.transition().duration(3e3).attr("fill", "#"+((1<<24)*Math.random()|0).toString(16)); },

function(){ console.log(3); return circle.transition().duration(1e3).attr("r", Math.random()*500); },

function(){ console.log(4); return circle.transition().duration(2e3).style("fill", "#"+((1<<24)*Math.random()|0).toString(16)); },

function(){ console.log(5); return circle.transition().duration(1e3).attr("cx", Math.random()*500); }]

递归函数

function animate(index){ 

if(index < animations.length - 1){

index = index + 1

return animations[index]().each("end", animate(index))

} else {

return true

}

}

的的jsfiddle是here,this

列表是使用recusive函数的例子。

谢谢大家提前。

回答:

你快到了!

而不是

return animations[index]().each("end", animate(index)) 

你需要

return animations[index]().each("end", function() { animate(index) }) 

见updated jsFiddle

以上是 d3.js中的转换队列;一个接一个 的全部内容, 来源链接: utcz.com/qa/257247.html

回到顶部