私はこのd3.jsブロックTimeline with Zoomを調べています。しかし、私はズーム機能が実際にどのように実装されているのか理解できません。誰かが私の理解を助けることができますか?D3.js:svgのズームを理解する
6
A
答えて
2
私は確信していませんが、これはD3スケールでのトリックだと思います。
何が起こるかは、以下の選択(時間0から時間100までの100%の投影)であり、同じ幅の時間50から時間80までの新しい縮尺にプロットされます。
これは、その時間を瞬間的にズームしたように見えるように縮尺を変更します。
8
率直に言えば、ズームの発生はありません。
var brush = d3.svg.brush()
.x(x)
.on("brush", display);//this calls display function on brush event drag.
内側の表示機能。
ブラシフィルタの最大値と最小値のデータに基づいて minExtent = brush.extent()[0],//this give the brush extent min
maxExtent = brush.extent()[1],//this give the brush extent max
:
visItems = items.filter(function(d) {return d.start < maxExtent && d.end > minExtent;});
ブラシの最大と最小でドメインをリセットします。
x1.domain([minExtent, maxExtent]);
DOMにブラシ関連データがない上部領域のすべての矩形を選択します。新しいスケールが
rects = itemRects.selectAll("rect")
.data(visItems, function(d) { return d.id; })
.attr("x", function(d) {return x1(d.start);})
.attr("width", function(d) {return x1(d.end) - x1(d.start);});
値と はそれを更新したデータは存在していますが、DOMが存在しない場合は、新しい長方形を作成します。
rects.enter().append("rect")
.attr("class", function(d) {return "miniItem" + d.lane;})
.attr("x", function(d) {return x1(d.start);})
.attr("y", function(d) {return y1(d.lane) + 10;})
.attr("width", function(d) {return x1(d.end) - x1(d.start);})
.attr("height", function(d) {return .8 * y1(1);});
上記長方形のために行われるようにラベルの全く同じvisItems
rects.exit().remove();
濾過アイテムリストにブラシ程度outsside又は全ての矩形を削除します。
これはあなたの疑問をすべて解決することを願っています。
関連する問題
- 1. d3.js:SVGリニアグラデーションの色を変えますか?
- 2. D3 - D3のSVGシンボルでズームする
- 3. D3 X軸をズームする
- 4. D3ズーム設定
- 5. d3スタッキングとズーム
- 6. D3キャンバスブラシとズーム
- 7. D3.js軸でズームする
- 8. div3とd3ズームを持つd3力グラフ
- 9. D3.queue - プログラムフローを理解する
- 10. ズームのプロパティをリセットするd3
- 11. D3マルチシリーズライングラフ(ズーム付き)
- 12. D3マウスホイールのズーム方向
- 13. d3ズームxドメインのみ
- 14. d3でグラフをドラッグ&ズームする
- 15. D3.jsでポリゴンをズームする方法
- 16. d3でズームとパンを制限する
- 17. D3バージョン4で水平ズーム?
- 18. D3ズーム可能なサークルは
- 19. 手動ズームでd3エラー
- 20. D3:1つのチャートでズームとツールチップを処理する方法は?
- 21. d3ツリーグラフのズームはノード上にある
- 22. D3マウスホイールのズーム動作の制約
- 23. d3ズームとパンのバージョン4へのアップグレード
- 24. D3の地図:パスのグループにズーム
- 25. 角度2のD3 V4グラフのドラッグ&ズーム
- 26. 特定のノードのズームd3.jsツリー
- 27. d3軸のズーム範囲の問題
- 28. d3 techanjsをズームできません
- 29. d3.jsを使ったズーム棒グラフ
- 30. d3.js散布図をズーム/ドラッグ