Chart.js - 鼠标悬停时自定义css到数据集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chart.js - 鼠标悬停时自定义css到数据集相关的知识,希望对你有一定的参考价值。

我在饼图选项中有以下代码,以便在悬停时将鼠标光标更改为指针:

hover: {
      onHover: (e, el) => {
        const section = el[0];
        const currentStyle = e.target.style;
        currentStyle.cursor = section ? 'pointer' : 'normal';
      }
    }

问题

  1. 即使指向外部的饼(或内部),光标也会变为指针。我希望它只在悬停数据集时更改。可能吗?
  2. 即使光标停留在元素内部并且可能导致性能问题,hover方法也在执行,是否可以在chart.js上使用与onmouseenter相同的功能?

谢谢

enter image description here

答案

你唯一的问题是你对光标使用了无效值,没有“正常”,它应该是“默认”。

试试这个:

hover: {
  onHover: (e, el) => {
    const section = el[0];
    const currentStyle = e.target.style;
    currentStyle.cursor = section ? 'pointer' : 'default'; // <-- default here
  }
}

要限制触发onHover方法的有用功能的次数,您可以对以前的目标进行简单检查:

onHover: (() => {
  let prevTarget;

  return (e, el) => {
    const section = el[0];

    if (prevTarget !== section) {
      // Code in this if-block is called only when necessary

      const currentStyle = e.target.style;
      currentStyle.cursor = section ? 'pointer' : 'default';

      // .........
    }

    prevTarget = section;
  }
})()
另一答案

只需将CSS样式添加到饼图数据集即可。

cursor: pointer;

使用此方法,您甚至不需要javascript来设置游标属性。

以上是关于Chart.js - 鼠标悬停时自定义css到数据集的主要内容,如果未能解决你的问题,请参考以下文章

Chart Js显示鼠标悬停时的旧数据

悬停时如何在chart.js中的特定点添加水平线?

鼠标单击Chart.js创建数据点

当 React Material UI 中的 TextField 中存在值时自定义自动完成 CSS

图表工作不正确chart.js

css里鼠标悬停变色怎么弄