2013-02-19 11 views
5

私は、階層ツリー(something like this)を作成する必要がありますが、私はいくつかの機能が必要:私は(サイズ、背景画像、フォントなど)を好きなようにノードを設計する複雑な階層的ツリーレイアウト

  1. 能力を
  2. ドラッグN」ドロップによってノードを接続する
  3. 自動レイアウト
  4. 能力

私はGoJsを見て、その素晴らしいが、それはキャンバスベースだ、と私はミリアンペアへの道を見つけることができませんでしたしました私は望む通りにノードを正確に見ています(実際には遠く離れていません)。

私はまた、d3.jsを見てきましたが、それはSVGだからノードを設計するのが面倒だからです。

ここでの主なハッスルはレイアウトであり、ノードを接続すると、ドラッグN 'ドロップ自分自身を処理することができます、そこに私のレイアウトを処理できるライブラリがあるので、それらをデザインしてみましょう。そして、図書館にレイアウトのものだけをさせるのですか?

答えて

3

ここにいくつかのサンプルライブラリがあります。

キャンバスを避けたい場合は、ドラッグを実装しようとnは、以下の

CSS3 Family Tree

SlickMap

または他のいくつかのキャンバスベースのライブラリ

JavaScript InfoVis Toolkit's HyperTree/SpaceTree

jsPlumbを見るためにドロップ

+1

最初のリンクは素晴らしいです、ありがとう。 – Tomer

+0

注:最新のブラウザでのみ動作します。 –

2

遅い回答の間、将来的に他の人を助けることができれば幸いです。 優れたD3.jsライブラリを利用したドラッグアンドドロップツリーです。

http://bl.ocks.org/robschmuecker/7880033

https://gist.github.com/robschmuecker/7880033

例のツリーは、自動レイアウト/サイズ、ズーミング、パンニング、ドラッグアンドドロップを処理し、折り畳み可能です。必要に応じて、すべての側面または一部の側面を削除することができます。

+0

これはすばらしい解決策ですが、多数のノードでひどく壊れています。 –

+0

@VectorGorgothこんにちは、私の例を50,000ノードで見たことがありますか? http://bl.ocks.org/robschmuecker/7926762 これは別の質問に関連しています。http://stackoverflow.com/questions/20539922/has-anyone-produced-a-virtualised-javascript-tree-for-数千のノード –

+0

JSは一般的に100k +のノードをメモリでうまく処理できます。それらをレンダリングする方法を描く - それは別の問題です。ウィンドウやクリッピングがないため、約1,000ノードを超える拡張されたツリーは、明らかに遅いです。 –