私は、ズームとパンのタイムラインを構築しました。私はそれがズームまたはパンとしてx軸のリアルタイム状態を取得しようとしています。これらのdate_minとdate_max変数を保持するにはどうすればよいですか?ここでd3.jsズーム&パンタイムライン - ダイナミックタイムライン範囲を表示するにはどうすればいいですか?
は私jsfiddleです:このインタラクティブなタイムラインとhttps://jsfiddle.net/thinkin3d/gkL821fm/
私の究極の目的は、リアルタイムズーム/パンの状態を取得し、この新しい時間スケールのデータを要求するために戻ってサーバにその状態データを送信することです。
上記のjsfiddleでは、divは「x-min」と「x-max」をレンダリングするために配置されていますが、これらのダイナミックを保持するためにd3軸またはズーム関数に正しくフックする方法はわかりません状態変数。ここ
は、xの関数である:ここ
var x = d3.time.scale()
.domain([new Date(2017, 1, 1), new Date(2018, 1, 1)])
.range([0, width]);
は、x軸の関数である:ここ
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.tickSize(-height);
は、ズーム機能である:
:ここvar zoom = d3.behavior.zoom()
.x(x)
.xExtent([new Date(-2000, 1, 1), new Date(3000, 1, 1)])
.on("zoom", zoomed);
はズーム機能であります
function zoomed() {
svg.select(".x.axis").call(xAxis);
}
console.log()でもx軸の範囲は機能しますが、変数がバインドされ、d3とjavascriptでここで処理される方法に関する基本的なものがありません。
お知らせください!
ありがとうございました!フォローアップとして、mouseupで最後のx軸の状態を待ってキャプチャする方法はありますか? (マウスドラッグ中に変化するすべての中間値を無視する)zoomed()関数の 'finally'節のようなものはありますか?または、UIジェスチャーの最後に.innerHTML更新をトリガーするだけですか? –
コメント内のあなたの問題を解決するために答えを編集しました。 –