Skip to content

Instantly share code, notes, and snippets.

@robschmuecker
robschmuecker / README.md
Last active Jul 1, 2020
Multiple Parent Nodes D3.js
View README.md

Multi Link Example for http://www.robschmuecker.com/d3-js-drag-and-drop-zoomable-tree/#comment-6190

Added an additional link between nodes at the bottom of the dndTree.js file.

This example pulls together various examples of work with trees in D3.js.

The panning functionality can certainly be improved in my opinion and I would be thrilled to see better solutions contributed.

One can do all manner of housekeeping or server related calls on the drop event to manage a remote tree dataset for example.

@robschmuecker
robschmuecker / README.md
Last active Jul 1, 2020
Clickable link Drag and Drop zoomable D3.js tree example.
View README.md
@robschmuecker
robschmuecker / README.md
Last active May 7, 2019
Drag and drop, collapsible d3.js Tree with 50,000 nodes
View README.md

This is an example of a collapsible drag and drop tree implementing slightly modified code from https://gist.github.com/robschmuecker/7880033

This is posted in order to demonstrate a viable answer for a Stack Overflow question http://stackoverflow.com/questions/20539922/has-anyone-produced-a-virtualised-javascript-tree-for-thousands-of-nodes

The only difference between this gist and the one referenced above is that the JSON file has changed. Each node contains 15 children and the depth is 4. Hence over 50,000 nodes.

The performance is fine if not too many of the nodes are present at once in the DOM. The JSON was contructed at http://www.json-generator.com/ with the following markup

@robschmuecker
robschmuecker / README.md
Last active Apr 1, 2021
D3.js Drag and Drop, Zoomable, Panning, Collapsible Tree with auto-sizing.
View README.md

This example pulls together various examples of work with trees in D3.js.

The panning functionality can certainly be improved in my opinion and I would be thrilled to see better solutions contributed.

One can do all manner of housekeeping or server related calls on the drop event to manage a remote tree dataset for example.

Dragging can be performed on any node other than root (flare). Dropping can be done on any node.

Panning can either be done by dragging an empty part of the SVG around or dragging a node towards an edge.