center-on-selected-node.html 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Organization Chart Plugin</title>
  8. <link rel="icon" href="img/logo.png">
  9. <link rel="stylesheet" href="css/font-awesome.min.css">
  10. <link rel="stylesheet" href="css/jquery.orgchart.css">
  11. <link rel="stylesheet" href="css/style.css">
  12. <style type="text/css">
  13. .orgchart { background: white; }
  14. </style>
  15. </head>
  16. <body>
  17. <div id="chart-container"></div>
  18. <script type="text/javascript" src="js/jquery.min.js"></script>
  19. <script type="text/javascript" src="js/jquery.orgchart.js"></script>
  20. <script type="text/javascript">
  21. $(function() {
  22. var datascource = {
  23. 'name': 'Lao Lao',
  24. 'title': 'general manager',
  25. 'children': [
  26. { 'name': 'Bo Miao', 'title': 'department manager' },
  27. { 'name': 'Su Miao', 'title': 'department manager',
  28. 'children': [
  29. { 'name': 'Tie Hua', 'title': 'senior engineer' },
  30. { 'name': 'Hei Hei', 'title': 'senior engineer',
  31. 'children': [
  32. { 'name': 'Pang Pang', 'title': 'engineer' },
  33. { 'name': 'Dan Zai', 'title': 'UE engineer',
  34. 'children': [
  35. { 'name': 'Er Dan Zai', 'title': 'Intern' }
  36. ]
  37. }
  38. ]
  39. }
  40. ]
  41. },
  42. { 'name': 'Hong Miao', 'title': 'department manager' },
  43. { 'name': 'Chun Miao', 'title': 'department manager' }
  44. ]
  45. };
  46. $('#chart-container').orgchart({
  47. 'visibleLevel': 2,
  48. 'pan': true,
  49. 'data' : datascource,
  50. 'nodeContent': 'title',
  51. 'createNode': function($node, data) {
  52. $node.on('click', function(event) {
  53. if (!$(event.target).is('.edge, .toggleBtn')) {
  54. var $this = $(this);
  55. var $chart = $this.closest('.orgchart');
  56. var newX = window.parseInt(($chart.outerWidth(true)/2) - ($this.offset().left - $chart.offset().left) - ($this.outerWidth(true)/2));
  57. var newY = window.parseInt(($chart.outerHeight(true)/2) - ($this.offset().top - $chart.offset().top) - ($this.outerHeight(true)/2));
  58. $chart.css('transform', 'matrix(1, 0, 0, 1, ' + newX + ', ' + newY + ')');
  59. }
  60. });
  61. }
  62. });
  63. });
  64. </script>
  65. </body>
  66. </html>