Programmatic Event Triggers

Programmatic Event Triggers - 图1

hover tooltip actions config setup

  1. function triggerHover(chart) {
  2. if (chart.getActiveElements().length > 0) {
  3. chart.setActiveElements([]);
  4. } else {
  5. chart.setActiveElements([
  6. {
  7. datasetIndex: 0,
  8. index: 0,
  9. }, {
  10. datasetIndex: 1,
  11. index: 0,
  12. }
  13. ]);
  14. }
  15. chart.update();
  16. }
  1. function triggerTooltip(chart) {
  2. const tooltip = chart.tooltip;
  3. if (tooltip.getActiveElements().length > 0) {
  4. tooltip.setActiveElements([], {x: 0, y: 0});
  5. } else {
  6. const chartArea = chart.chartArea;
  7. tooltip.setActiveElements([
  8. {
  9. datasetIndex: 0,
  10. index: 2,
  11. }, {
  12. datasetIndex: 1,
  13. index: 2,
  14. }
  15. ],
  16. {
  17. x: (chartArea.left + chartArea.right) / 2,
  18. y: (chartArea.top + chartArea.bottom) / 2,
  19. });
  20. }
  21. chart.update();
  22. }
  1. const actions = [
  2. {
  3. name: 'Trigger Hover',
  4. handler: triggerHover
  5. },
  6. {
  7. name: 'Trigger Tooltip',
  8. handler: triggerTooltip
  9. }
  10. ];
  1. const config = {
  2. type: 'bar',
  3. data: data,
  4. options: {
  5. },
  6. };
  1. const DATA_COUNT = 7;
  2. const NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};
  3. const labels = Utils.months({count: 7});
  4. const data = {
  5. labels: labels,
  6. datasets: [
  7. {
  8. label: 'Dataset 1',
  9. data: Utils.numbers(NUMBER_CFG),
  10. borderColor: Utils.CHART_COLORS.red,
  11. backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),
  12. hoverBorderWidth: 5,
  13. hoverBorderColor: 'green',
  14. },
  15. {
  16. label: 'Dataset 2',
  17. data: Utils.numbers(NUMBER_CFG),
  18. borderColor: Utils.CHART_COLORS.blue,
  19. backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),
  20. hoverBorderWidth: 5,
  21. hoverBorderColor: 'green',
  22. }
  23. ]
  24. };