1

d3 3.1 からのアップグレード後。9から3.1。10、d3 svg ビジュアライゼーションのアニメーションが壊れました。私の推測では、このコミット (古い機能の削除) に関連しており、古い API を使用しています。 https://github.com/mbostock/d3/commit/d9659b6794fa1985c756d2a7d8ee73174e54ee08

最も単純なトランジションでさえ失敗します (グループ要素を 75 ピクセル右に移動します)。

d3.select('g.slider').transition().duration(500).attr('transform','translate(100,0)');

上記のトランジションと同時に開始する他の要素にも同様のトランジションがあります。トランジションが完全に異なる要素上にある場合でも、トランジションが互いにキャンセルする競合が発生する可能性はありますか? (新しい?) API を間違った方法で使用しているだけだと思いますか? 3.1.9ではすべてうまく機能したことに注意してください。Mike のこのガイド (d3.js 3 での移行) に従ってみましたが、API は同じように見えるため、行き詰まりました: http://bost.ocks.org/mike/transition/

編集: この問題を経験しているのは私だけだとしたら、私は驚くでしょう。3.1.9 から 3.1.10 に移行すると、d3 で何年にもわたって作成したアニメーションを含むすべてのビジュアライゼーションが機能しなくなりました。

4

2 に答える 2

2

GitHub の問題を使用してバグを報告してください。

また、コンテキストからコード スニペットを引用するのではなく、予期しない動作を示す完全な例を作成してください。あなたが説明した動作を再現できません。これは、完全な例http://bl.ocks.org/mbostock/b4e46124258d1b75accb内で正しく動作するスニペットです。

slider.transition()
    .duration(1000)
    .attr("transform", "translate(100,0)");

D3 には数千のテストと数百の例があり、その多くにはトランジションとアニメーションが含まれていますが、この変更による影響はありませんでした。すべてのビジュアライゼーションで、d3.timer のこのあいまいで文書化されていない機能を使用していますか? この変更があなたのコードに影響を与えたことには非常に驚いています。

まだ予期しない動作が発生している場合は、GitHub の問題についてフォローアップしてください。調査のために詳細を提供してください。

于 2013-06-10T14:44:22.650 に答える