トランジションを無期限にチェーンする方法を見つけようとして、3時間以上探しました...
私の唯一の解決策は、コードを関数にラップしてから、 setInterval で関数を繰り返し呼び出すか、遷移の「終了」イベントを待つことです
1 つのライナーの例:
d3.selectAll('circle').data([1,2,3]).enter().append('circle').attr('cy':function(d){return d * 100},'cx':function(){Math.random() * window.innerWidth},'r':'10px')
//sets initial locations for circles that are created to match data array
.transition().attr('cy':function(){Math.random() * window.innerHeight},'cx':function(){Math.random() * window.innerWidth}})
.transition().attr('cy':function(){Math.random() * window.innerHeight},'cx':function(){Math.random() * window.innerWidth}})
.transition().attr('cy':function(){Math.random() * window.innerHeight},'cx':function(){Math.random() * window.innerWidth}})
.transition().attr('cy':function(){Math.random() * window.innerHeight},'cx':function(){Math.random() * window.innerWidth}})
.transition().attr('cy':function(){Math.random() * window.innerHeight},'cx':function(){Math.random() * window.innerWidth}})
//I'm looking for something that can repeat the transition without using setInterval)