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.

130 lines
3.0 KiB

  1. <html>
  2. <head>
  3. <title>Timeline | Tooltip on item onUpdateTime Option</title>
  4. <script src="../../../dist/vis.js"></script>
  5. <link href="../../../dist/vis.css" rel="stylesheet" type="text/css" />
  6. <style type="text/css">
  7. .vis-item .vis-onUpdateTime-tooltip {
  8. border-radius: 4px;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <h1>Timeline Tooltip on item onUpdateTime Option</h1>
  14. <h2>With <code>tooltipOnItemUpdateTime: true</code>
  15. </h2>
  16. <div id="mytimeline1"></div>
  17. <h2>With <code>tooltipOnItemUpdateTime: { template: [Function] }</code>
  18. </h2>
  19. <div id="mytimeline2"></div>
  20. <h2>With groups</h2>
  21. <div id="mytimeline3"></div>
  22. <script>
  23. // create items
  24. var numberOfItems = 10;
  25. var items = new vis.DataSet();
  26. var types = [ 'box', 'point', 'range']
  27. for (var order = 0; order < numberOfItems; order++) {
  28. var date = vis.moment();
  29. date.add(Math.round(Math.random() * 2), 'hour');
  30. items.add({
  31. id: order,
  32. type: types[Math.floor(3 * Math.random())],
  33. content: 'Item ' + order,
  34. start: date.clone().add(order + 1, 'hour'),
  35. end: date.clone().add(order + 3, 'hour')
  36. });
  37. }
  38. // specify options
  39. var options = {
  40. multiselect: true,
  41. maxHeight: 400,
  42. start: new Date((new Date()).valueOf() - 10000000),
  43. end: new Date(1000*60*60*24 + (new Date()).valueOf()),
  44. editable: true
  45. };
  46. var options1 = Object.assign({
  47. tooltipOnItemUpdateTime: true
  48. }, options)
  49. var container1 = document.getElementById('mytimeline1');
  50. timeline1 = new vis.Timeline(container1, items, null, options1);
  51. var options2 = Object.assign({
  52. orientation: 'top',
  53. tooltipOnItemUpdateTime: {
  54. template: function(item) {
  55. return 'html template for tooltip with <b>item.start</b>: ' + item.start;
  56. }
  57. }
  58. }, options)
  59. var container2 = document.getElementById('mytimeline2');
  60. timeline2 = new vis.Timeline(container2, items, null, options2);
  61. // create groups
  62. var numberOfGroups = 25;
  63. var groups = new vis.DataSet()
  64. for (var i = 0; i < numberOfGroups; i++) {
  65. groups.add({
  66. id: i,
  67. content: 'Truck&nbsp;' + i
  68. })
  69. }
  70. // create items for groups
  71. var numberOfItems = 1000;
  72. var itemsWithGroups = new vis.DataSet();
  73. var itemsPerGroup = Math.round(numberOfItems/numberOfGroups);
  74. for (var truck = 0; truck < numberOfGroups; truck++) {
  75. var date = new Date();
  76. for (var order = 0; order < itemsPerGroup; order++) {
  77. date.setHours(date.getHours() + 4 * (Math.random() < 0.2));
  78. var start = new Date(date);
  79. date.setHours(date.getHours() + 2 + Math.floor(Math.random()*4));
  80. var end = new Date(date);
  81. itemsWithGroups.add({
  82. id: order + itemsPerGroup * truck,
  83. group: truck,
  84. start: start,
  85. end: end,
  86. content: 'Order ' + order
  87. });
  88. }
  89. }
  90. var options3 = Object.assign({
  91. orientation: 'top',
  92. tooltipOnItemUpdateTime: true
  93. }, options)
  94. var container3 = document.getElementById('mytimeline3');
  95. timeline3 = new vis.Timeline(container3, itemsWithGroups, groups, options3);
  96. </script>
  97. </body>
  98. </html>