...D3:リスト内の項目に基づいてsvgトランジションを行うことはできますか?
var data = [100, 200, 300] // arbitrarily long
...と遷移各リスト項目に基づいて、画面上の要素。たとえば、最初に[100,100]、[200,100]、[300,100]に点を送りたいと思います。データ結合でこれを行う方法はありますか?
現時点では、問題の解決策はありますが、D3-ishのような方法で動作します。カウンタを使用してリストを反復し、データバインディングを使用しません。 CSSを除いて、次のコードがあります。
<svg>
<circle/>
</svg>
<script>
var data = [100,200,300]
var circle = d3.selectAll("circle")
.attr("r",20)
.attr("cy",100)
.attr("cx",0)
var count = 0
repeat()
function repeat() {
var run = circle
.transition()
.duration(1000)
.attr("cx", function (d) {return data[count]});
count++
if (count < data.length){
run
.each("end", repeat);
}
}
</script>
データバインディングでこれを行う方法はありませんか?私はこれを正しい方法でやりたいと思っていますが、今のところ、これを動作させるためには私が把握できるだけのものです。
はい、これは機能します。カウンターなしでこれを行う方法はありますか?それは、そのような初等D3の問題のようです。ボストック?どこにいますか? – tupben