callbacks.html 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>Legend Callbacks</title>
  5. <script src="../../dist/Chart.min.js"></script>
  6. <script src="../utils.js"></script>
  7. <style>
  8. body, html {
  9. height: 100%;
  10. font-family: sans-serif;
  11. }
  12. canvas{
  13. -moz-user-select: none;
  14. -webkit-user-select: none;
  15. -ms-user-select: none;
  16. }
  17. #log {
  18. position: absolute;
  19. right: 0;
  20. top: 0;
  21. bottom: 0;
  22. background-color: #EEE;
  23. float: right;
  24. width: 20%;
  25. padding: 8px;
  26. overflow-y: auto;
  27. white-space: pre;
  28. line-height: 1.5em;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div id="log"></div>
  34. <div style="width:75%;">
  35. <canvas id="canvas"></canvas>
  36. </div>
  37. <script>
  38. var logEntry = 1;
  39. var logElement = document.getElementById('log');
  40. var utils = Samples.utils;
  41. var inputs = {
  42. min: 20,
  43. max: 80,
  44. count: 8,
  45. decimals: 2,
  46. continuity: 1
  47. };
  48. var config;
  49. function log(text) {
  50. logElement.innerText += logEntry + '. ' + text + '\n';
  51. logElement.scrollTop = logElement.scrollHeight;
  52. logEntry++;
  53. }
  54. function generateData() {
  55. return utils.numbers(inputs);
  56. }
  57. function generateLabels() {
  58. return utils.months({count: inputs.count});
  59. }
  60. utils.srand(42);
  61. config = {
  62. type: 'line',
  63. data: {
  64. labels: generateLabels(),
  65. datasets: [{
  66. label: 'My First dataset',
  67. backgroundColor: utils.color(0),
  68. borderColor: utils.color(0),
  69. data: generateData(),
  70. fill: false,
  71. }, {
  72. label: 'My Second dataset',
  73. fill: false,
  74. backgroundColor: utils.color(1),
  75. borderColor: utils.color(1),
  76. data: generateData(),
  77. }]
  78. },
  79. options: {
  80. legend: {
  81. onHover: function(event, legendItem) {
  82. log('onHover: ' + legendItem.text);
  83. },
  84. onLeave: function(event, legendItem) {
  85. log('onLeave: ' + legendItem.text);
  86. },
  87. onClick: function(event, legendItem) {
  88. log('onClick:' + legendItem.text);
  89. }
  90. },
  91. title: {
  92. display: true,
  93. text: 'Chart.js Line Chart'
  94. },
  95. scales: {
  96. xAxes: [{
  97. display: true,
  98. scaleLabel: {
  99. display: true,
  100. labelString: 'Month'
  101. }
  102. }],
  103. yAxes: [{
  104. display: true,
  105. scaleLabel: {
  106. display: true,
  107. labelString: 'Value'
  108. }
  109. }]
  110. }
  111. }
  112. };
  113. new Chart(document.getElementById('canvas'), config);
  114. </script>
  115. </body>
  116. </html>