While using the D3 implementation in one of my project for collapsible tree, I used the following piece of codes to add dragging and zooming feature in the tree. At first I have downloaded the D3 JS and loaded to the page callback as specified in the D3 implementation notes.
D3 JS
Drupal offers a variety of ways to implement solutions when it comes to custom theming and it has been abused often due to the very same reason. Choosing the right way is what Drupal developers find tricky. If it is not done right, it is quite likely that you 'Awesome Drupal Website' would turn into a code-monster soon. This can even make maintenance difficult. Hope this 'tiny bit of' information could help you through it.