私はいくつかの D3 の概念に頭を悩ませてきました (JavaScript に比較的慣れていないことは役に立ちません)。私がやろうとしているのは、緑色で始まり、ゆっくりと黄色に変わり、ゆっくりと赤に変わるステータス インジケーターを用意することです。なんらかのイベント (ボタンの押下、メッセージの受信など) が発生した場合、インジケーターを緑色に戻し、遷移を再開します。
基本的な視覚効果(リセット機能なし)を示す簡単な例(jQuery)を次に示しますhttp://jsfiddle.net/N4APE/
D3 では、背景色を経過ミリ秒数にマッピングするという考えがありました。私はこのようなスケールを作成しようとしました:
//10 sec is yellow, 30 sec is red
d3.scale.linear().domain([0, 10000, 30000]).range(["#00ff00", "#ffff00", "#ff0000"]);
しかし今、私は少し迷っています。トランジション、トゥイーン、インターポレーターの組み合わせで遊んでいますが、どこにも到達していないようです。http://jsfiddle.net/Ebuwa/を機能させるための哀れな試みを次に示します。
私の問題:
- トランジションの経過ミリ秒をスケールに関連付けて、背景色を設定する方法がわかりません
- トランジションを呼び出したときではなく、作成したときに実行されているように見え、間違った要素で動作します。
- 他の問題を克服した後、トランジションをリセットしてグリーンを維持する方法については確信が持てません。
もう1つ注意してください。代わりにsvgサークルなどを使用しても問題ありませんが、html背景属性があるのと同じように、svg塗りつぶし属性を操作するのと同じくらい運が悪かったです。
ありがとうございました