callbacks.html 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>Tooltip Hooks</title>
  5. <script src="../../dist/Chart.min.js"></script>
  6. <script src="../utils.js"></script>
  7. <style>
  8. canvas {
  9. -moz-user-select: none;
  10. -webkit-user-select: none;
  11. -ms-user-select: none;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div style="width:75%;">
  17. <canvas id="canvas"></canvas>
  18. </div>
  19. <script>
  20. var config = {
  21. type: 'line',
  22. data: {
  23. labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  24. datasets: [{
  25. label: 'My First dataset',
  26. borderColor: window.chartColors.red,
  27. backgroundColor: window.chartColors.red,
  28. data: [
  29. randomScalingFactor(),
  30. randomScalingFactor(),
  31. randomScalingFactor(),
  32. randomScalingFactor(),
  33. randomScalingFactor(),
  34. randomScalingFactor(),
  35. randomScalingFactor()
  36. ],
  37. fill: false,
  38. }, {
  39. label: 'My Second dataset',
  40. borderColor: window.chartColors.blue,
  41. backgroundColor: window.chartColors.blue,
  42. data: [
  43. randomScalingFactor(),
  44. randomScalingFactor(),
  45. randomScalingFactor(),
  46. randomScalingFactor(),
  47. randomScalingFactor(),
  48. randomScalingFactor(),
  49. randomScalingFactor()
  50. ],
  51. fill: false,
  52. }]
  53. },
  54. options: {
  55. responsive: true,
  56. title: {
  57. display: true,
  58. text: 'Chart.js Line Chart - Custom Information in Tooltip'
  59. },
  60. tooltips: {
  61. mode: 'index',
  62. callbacks: {
  63. // Use the footer callback to display the sum of the items showing in the tooltip
  64. footer: function(tooltipItems, data) {
  65. var sum = 0;
  66. tooltipItems.forEach(function(tooltipItem) {
  67. sum += data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
  68. });
  69. return 'Sum: ' + sum;
  70. },
  71. },
  72. footerFontStyle: 'normal'
  73. },
  74. hover: {
  75. mode: 'index',
  76. intersect: true
  77. },
  78. scales: {
  79. xAxes: [{
  80. display: true,
  81. scaleLabel: {
  82. show: true,
  83. labelString: 'Month'
  84. }
  85. }],
  86. yAxes: [{
  87. display: true,
  88. scaleLabel: {
  89. show: true,
  90. labelString: 'Value'
  91. }
  92. }]
  93. }
  94. }
  95. };
  96. window.onload = function() {
  97. var ctx = document.getElementById('canvas').getContext('2d');
  98. window.myLine = new Chart(ctx, config);
  99. };
  100. </script>
  101. </body>
  102. </html>