Detecting hover events over parts of a chart using Chart.js

后端 未结 6 1217
野性不改
野性不改 2020-12-15 11:39

I\'ve made a pie chart using Chart.js, and I\'d like to detect when a segment is hovered over. I\'ve found plenty of documentation regarding manipulating the tooltips that a

6条回答
  •  太阳男子
    2020-12-15 12:04

    UPDATE 2020 : For Chartjs 3.5

    Here is a quick fix that I used with Chartjs 3.5 to trigger events on hover over Doughnut or Pie parts. It relies on using the existing onHover option :

    onHover : (event, activeElements) => {
    
        if (activeElements.length > 0) {
    
                // get active chart element
                let elt = activeElements[0];
    
                // retrieve element label
                let lbl = elt._model.label;
    
                // Get element value
                let elt_index = elt._chart.tooltip._data.labels.indexOf(lbl);
                let val = elt._chart.tooltip._data.datasets[0].data[elt_index];
    
               // trigger your event here :
               // ex for vuejs : this.$emit('element-hovered', { label : lbl, value : val });
    
           }
           else {
               // No active elements
           }
    
       }
    

    Working fine so far :)

提交回复
热议问题