vis.js is a dynamic, browser-based visualization library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
4.5 KiB

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>Network | Interaction events</title>
  5. <script type="text/javascript" src="../../../dist/vis.js"></script>
  6. <link href="../../../dist/vis-network.min.css" rel="stylesheet" type="text/css"/>
  7. <style type="text/css">
  8. #mynetwork {
  9. width: 600px;
  10. height: 400px;
  11. border: 1px solid lightgray;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <p>
  17. Create a simple network with some nodes and edges. Some of the events are logged in the console in improve readability.
  18. </p>
  19. <div id="mynetwork"></div>
  20. <pre id="eventSpan"></pre>
  21. <script type="text/javascript">
  22. // create an array with nodes
  23. var nodes = new vis.DataSet([
  24. {id: 1, label: 'Node 1', title: 'I have a popup!'},
  25. {id: 2, label: 'Node 2', title: 'I have a popup!'},
  26. {id: 3, label: 'Node 3', title: 'I have a popup!'},
  27. {id: 4, label: 'Node 4', title: 'I have a popup!'},
  28. {id: 5, label: 'Node 5', title: 'I have a popup!'}
  29. ]);
  30. // create an array with edges
  31. var edges = new vis.DataSet([
  32. {from: 1, to: 3},
  33. {from: 1, to: 2},
  34. {from: 2, to: 4},
  35. {from: 2, to: 5}
  36. ]);
  37. // create a network
  38. var container = document.getElementById('mynetwork');
  39. var data = {
  40. nodes: nodes,
  41. edges: edges
  42. };
  43. var options = {
  44. interaction:{hover:true},
  45. manipulation: {
  46. enabled: true
  47. }
  48. };
  49. var network = new vis.Network(container, data, options);
  50. network.on("click", function (params) {
  51. params.event = "[original event]";
  52. document.getElementById('eventSpan').innerHTML = '<h2>Click event:</h2>' + JSON.stringify(params, null, 4);
  53. console.log('click event, getNodeAt returns: ' + this.getNodeAt(params.pointer.DOM));
  54. });
  55. network.on("doubleClick", function (params) {
  56. params.event = "[original event]";
  57. document.getElementById('eventSpan').innerHTML = '<h2>doubleClick event:</h2>' + JSON.stringify(params, null, 4);
  58. });
  59. network.on("oncontext", function (params) {
  60. params.event = "[original event]";
  61. document.getElementById('eventSpan').innerHTML = '<h2>oncontext (right click) event:</h2>' + JSON.stringify(params, null, 4);
  62. });
  63. network.on("dragStart", function (params) {
  64. // There's no point in displaying this event on screen, it gets immediately overwritten
  65. params.event = "[original event]";
  66. console.log('dragStart Event:', params);
  67. console.log('dragStart event, getNodeAt returns: ' + this.getNodeAt(params.pointer.DOM));
  68. });
  69. network.on("dragging", function (params) {
  70. params.event = "[original event]";
  71. document.getElementById('eventSpan').innerHTML = '<h2>dragging event:</h2>' + JSON.stringify(params, null, 4);
  72. });
  73. network.on("dragEnd", function (params) {
  74. params.event = "[original event]";
  75. document.getElementById('eventSpan').innerHTML = '<h2>dragEnd event:</h2>' + JSON.stringify(params, null, 4);
  76. console.log('dragEnd Event:', params);
  77. console.log('dragEnd event, getNodeAt returns: ' + this.getNodeAt(params.pointer.DOM));
  78. });
  79. network.on("zoom", function (params) {
  80. document.getElementById('eventSpan').innerHTML = '<h2>zoom event:</h2>' + JSON.stringify(params, null, 4);
  81. });
  82. network.on("showPopup", function (params) {
  83. document.getElementById('eventSpan').innerHTML = '<h2>showPopup event: </h2>' + JSON.stringify(params, null, 4);
  84. });
  85. network.on("hidePopup", function () {
  86. console.log('hidePopup Event');
  87. });
  88. network.on("select", function (params) {
  89. console.log('select Event:', params);
  90. });
  91. network.on("selectNode", function (params) {
  92. console.log('selectNode Event:', params);
  93. });
  94. network.on("selectEdge", function (params) {
  95. console.log('selectEdge Event:', params);
  96. });
  97. network.on("deselectNode", function (params) {
  98. console.log('deselectNode Event:', params);
  99. });
  100. network.on("deselectEdge", function (params) {
  101. console.log('deselectEdge Event:', params);
  102. });
  103. network.on("hoverNode", function (params) {
  104. console.log('hoverNode Event:', params);
  105. });
  106. network.on("hoverEdge", function (params) {
  107. console.log('hoverEdge Event:', params);
  108. });
  109. network.on("blurNode", function (params) {
  110. console.log('blurNode Event:', params);
  111. });
  112. network.on("blurEdge", function (params) {
  113. console.log('blurEdge Event:', params);
  114. });
  115. </script>
  116. </body>
  117. </html>