Hei、 ユーザーがボタンを押したときに棒グラフを更新しています。それは.transition
- プロパティで正常に動作します。しかし、私がテキスト上でそれを行うと、テキストが直ちに置き換えられます。代わりに私は起こることを望んでいるのは、それが古いものから新しいものまで(ラベルがバーと共に動いている間に)数えられるということです。例えば、バーは値1453から1102に更新されます。ユーザがクリックすると直ちに1453を置き換える代わりに、指定された遷移時間にわたって1102から1453までカウントアップする必要があります。 これを達成できますか?そのためのd3関数はありますか?d3アップデート番号 - すぐに番号を交換する代わりにカウントアップ/ダウン
2
A
答えて
3
bl.ocksにテキスト補間の簡単な例をアップロードしました。関連部品custom interpolatorです:
function interpolateText(a, b) {
var regex = /^(\d+), (\d+)$/;
var matchA = regex.exec(a);
var matchB = regex.exec(b);
if (matchA && matchB) {
var x = d3.interpolateRound(+matchA[1], +matchB[1]);
var y = d3.interpolateRound(+matchA[2], +matchB[2]);
return function(t) {
var result = [x(t), y(t)].join(", ");
return result;
};
}
}
d3.interpolators.push(interpolateText);
そしてd3.transition.tweenを使用して:私の場合は
.on("dragend", function(d, i) {
var prev = [d.x, d.y].join(", ");
d.x = d.origin[0];
d.y = d.origin[1];
var next = [d.x, d.y].join(", ");
var selection = d3.select(this)
.transition()
.duration(1000)
.call(draw);
selection
.select("text")
.tween("textTween", function() {
var i = d3.interpolate(prev, next);
return function(t) {
this.textContent = i(t);
}
});
});
、私はドラッグ開始/終了を待機していますが、あなたは非常に簡単にボタンの押しにそれをフックすることができます。
.tween
は、標準のインターポレータが使用するのと同じアニメーション「ティック」を得るためです。これにより、内部のt
パラメータがアニメーションの進行状況と一致し、this.textContent
を設定すると、DOM要素の内部値が更新されます。
私が使用する例では、2つの点の間を補間していますが、これはかなり簡単ですが、正確に1つの数値を含むテキストを更新するだけであれば、さらに簡単です。
関連する問題
- 1. ポイントの代わりにプロット番号
- 2. 代わりに番号/値のはNaNを取得する
- 3. 部品番号VerifySet(アクション)の交換時代遅れ表現コンパイルエラー
- 4. 番号に番号を付ける?
- 5. アンドロイド通知の代わりに番号を取得
- 6. Androidの電話番号の代わりにマルチメディアのボリューム
- 7. ベクトルの番号にインターバル番号を割り当てる
- 8. ダイナミックスで2社間のシーケンス番号を交換するAX 4.0
- 9. 英語版の代わりにCultureInfoネイティブ番号を使用する
- 10. 番号をUnicode記号に変換する
- 11. ID番号の代わりにMagento属性名を取得しますか?
- 12. 行番号の代わりにGCCがcc1を出力します
- 13. データベース番号の自動番号付けまたはカスタム番号
- 14. PHPは開始番号に番号を付け加えます。
- 15. Java RegEx:電話番号の交換(オプションのカッコを含む)
- 16. x86アセンブリベース番号の変換
- 17. DataPager <a>で現在のページ番号にラベルの代わりに
- 18. IND番号とNAN番号の違い
- 19. @(YES)vs [NS番号番号WithBool:はい]
- 20. 電話番号のハイライト番号
- 21. 番号?
- 22. 番号
- 23. =記号の代わりに
- 24. シリアル番号プールからシリアル番号をクライアントに割り当てる
- 25. 番号または2番目に大きな番号を見つける
- 26. コードイグナイター、ページ番号をオフセットの代わりにページ番号で使用するにはどうすればよいですか?
- 27. トランプカードに番号を割り当てる
- 28. Jqueryはランダムに2つ前の番号を繰り返すことなく2番目の番号を隠す
- 29. 行番号と列番号で値を取得する
- 30. アセンブリ8086:8ビットのバイナリ番号をグレイ番号に相当するものに変換しますか?