D3js-animation
D3.js-アニメーション
D3.jsは、遷移によるアニメーションをサポートしています。 トランジションを適切に使用してアニメーションを作成できます。 トランジションは、*キーフレームアニメーション*の限られた形式であり、開始と終了の2つのキーフレームのみがあります。 通常、開始キーフレームはDOMの現在の状態であり、終了キーフレームは指定した属性、スタイル、およびその他のプロパティのセットです。 遷移は、開始ビューに依存する複雑なコードなしで新しいビューに遷移するのに適しています。
例-「transition_colorl」ページで次のコードを考えてみましょう。
ここでは、ドキュメントの背景色が白から明るい灰色に変わり、その後灰色に変わりました。
duration()メソッド
duration()メソッドを使用すると、プロパティを瞬時にではなく、指定した期間にわたってスムーズに変更できます。 次のコードを使用して、5秒かかる移行を行いましょう。
ここでは、移行はスムーズかつ均等に行われました。 次の方法を使用して、RGBカラーコード値を直接割り当てることもできます。
これで、各色番号がゆっくり、滑らかに、均等に0から150になります。 開始フレーム値から終了フレーム値までの中間フレームを正確にブレンドするために、D3.jsは内部補間メソッドを使用します。 構文は以下のとおりです-
D3はまた、次の補間タイプをサポートしています-
- interpolateNumber -数値をサポートします。
- interpolateRgb -色をサポートします。
- interpolateString -サポート文字列。
D3.jsは適切な内挿法の使用を処理し、高度な場合、内挿法を直接使用して目的の結果を得ることができます。 必要に応じて、新しい内挿法を作成することもできます。
delay()メソッド
delay()メソッドを使用すると、一定の時間が経過した後に遷移を行うことができます。 「transition_delayl」内の次のコードを検討してください。
移行のライフサイクル
移行には4段階のライフサイクルがあります-
- 移行が予定されています。
- 移行が開始されます。
- 移行が実行されます。 *移行は終了します。
これらのそれぞれを詳細に見ていきましょう。
移行が予定されています
遷移は、作成時にスケジュールされます。* selection.transition を呼び出すとき、遷移をスケジュールしています。 これは、 attr()、style()*、およびその他の遷移メソッドを呼び出して終了キーフレームを定義するときでもあります。
移行が始まります
移行は、移行のスケジュール時に指定された遅延に基づいて開始されます。 遅延が指定されていない場合、遷移はできるだけ早く開始されます。これは通常、数ミリ秒後です。
遷移に遅延がある場合、開始値は遷移の開始時にのみ設定する必要があります。 私たちは開始イベントを聞くことでこれを行うことができます-
移行の実行
遷移が実行されると、0から1の範囲の遷移値で繰り返し呼び出されます。 遅延と期間に加えて、遷移はタイミングを制御するのが容易になります。 スローインやスローアウトなど、時間をゆがめると緩和されます。 イージング関数によっては、一時的にtの値が1より大きいか0より小さい場合があります。
移行終了
遷移の終了時間は常に正確に1であるため、終了値は遷移の終了時に正確に設定されます。 遷移は、遅延と継続時間の合計に基づいて終了します。 遷移が終了すると、終了イベントが送出されます。