如何在 D3 中的多个单独的过渡多边形之间添加过渡延迟?
How do I add a transition delay between multiple individual transitioning polygons in D3?
原始代码可在以下位置找到:http://bl.ocks.org/Guerino1/3a51eeb95d3a8345bc27370e8c9d5b77
我有许多多边形正在过渡到 svg canvas(从左到右,在 HTML 页面的底部)。
我用来创建人字形转换的代码利用了 D3 多边形:
// Create Polygons for SDLC
svgCanvas.selectAll("a")
.data(dataSet)
.enter().append("a")
.attr("xlink:href", function(d) { return d.link; })
.append("svg:polygon")
//svgCanvas.selectAll("polygon")
//.data(dataSet)
//.enter().append("polygon")
.attr("id", function(d,i){ return (selectString.replace(/ /g,'_').replace(/#/g,'') + "_index_" + i); })
.attr("originalcolor","violet")
.style("stroke","blue")
.style("fill","violet")
.style("stroke-width",2)
.attr("points", origin)
.on('mouseover', chevronMouseOver)
.on("mouseout", chevronMouseOut)
.on("click", chevronMouseOut)
.transition() // <------- TRANSITION STARTS HERE --------
.duration(3000)
.attr("points", calculateChevron);
目前,所有多边形一起过渡到 svg canvas。我想在它们中的每一个之间放置一个延迟,这样它看起来更像是从一副纸牌中发牌,一次一张。
如何正确添加 D3 延迟来实现这一点?
感谢您提供的任何帮助。
试试这个..
.transition() // <------- TRANSITION STARTS HERE --------
.delay(function(d,i){ return 100*i; })
.duration(3000)
.attr("points", calculateChevron);
原始代码可在以下位置找到:http://bl.ocks.org/Guerino1/3a51eeb95d3a8345bc27370e8c9d5b77
我有许多多边形正在过渡到 svg canvas(从左到右,在 HTML 页面的底部)。
我用来创建人字形转换的代码利用了 D3 多边形:
// Create Polygons for SDLC
svgCanvas.selectAll("a")
.data(dataSet)
.enter().append("a")
.attr("xlink:href", function(d) { return d.link; })
.append("svg:polygon")
//svgCanvas.selectAll("polygon")
//.data(dataSet)
//.enter().append("polygon")
.attr("id", function(d,i){ return (selectString.replace(/ /g,'_').replace(/#/g,'') + "_index_" + i); })
.attr("originalcolor","violet")
.style("stroke","blue")
.style("fill","violet")
.style("stroke-width",2)
.attr("points", origin)
.on('mouseover', chevronMouseOver)
.on("mouseout", chevronMouseOut)
.on("click", chevronMouseOut)
.transition() // <------- TRANSITION STARTS HERE --------
.duration(3000)
.attr("points", calculateChevron);
目前,所有多边形一起过渡到 svg canvas。我想在它们中的每一个之间放置一个延迟,这样它看起来更像是从一副纸牌中发牌,一次一张。
如何正确添加 D3 延迟来实现这一点?
感谢您提供的任何帮助。
试试这个..
.transition() // <------- TRANSITION STARTS HERE --------
.delay(function(d,i){ return 100*i; })
.duration(3000)
.attr("points", calculateChevron);