在 Charts.js 上为某些数据显示提示时增加点半径

tsh*_*tsh 2 javascript chart.js

我正在使用Chart.js。我想让该点默认隐藏,但是当为某些数据显示工具提示时,通过增加其点的半径来突出显示数据。

以下代码是我尝试过的。但如果鼠标悬停在它上面,它只会增加点的半径。只要显示工具提示,我就希望半径增加。

感谢您的帮助。

var myChart = new Chart('chart', {
  type: 'line',
  data: {
    datasets: [
      {
        label: "l1",
        borderColor: `hsla(150, 60%, 33%, 1)`,
        backgroundColor: `hsla(150, 60%, 33%, 0.8)`,
        fill: false,
        data: [{ x: 1, y: 2 }, { x: 2, y: 3 }],
      },{
        label: "l2",
        borderColor: `hsla(210, 60%, 33%, 1)`,
        backgroundColor: `hsla(210, 60%, 33%, 0.8)`,
        fill: false,
        data: [{ x: 1, y: 2 }, { x: 2, y: 1 }],
      }
    ]
  },
  options: {
    elements: {
      point: {
        radius: 1,
        hoverRadius: 4,
      },
    },
    tooltips: {
      mode: 'index',
      intersect: false,
      position: 'nearest',
    },
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"></script>
<canvas id="chart" />
Run Code Online (Sandbox Code Playgroud)

Iro*_*eek 5

尝试使用用于 的相同值设置modeintersect选项。 hovertooltips

...
hover: {
  mode: 'index',
  intersect: false
}
...
Run Code Online (Sandbox Code Playgroud)

这样,hover事件将以与触发相同的方式tooltips触发。

...
hover: {
  mode: 'index',
  intersect: false
}
...
Run Code Online (Sandbox Code Playgroud)
var myChart = new Chart('chart', {
  type: 'line',
  data: {
    datasets: [
      {
        label: "l1",
        borderColor: `hsla(150, 60%, 33%, 1)`,
        backgroundColor: `hsla(150, 60%, 33%, 0.8)`,
        fill: false,
        data: [{ x: 1, y: 2 }, { x: 2, y: 3 }],
      },{
        label: "l2",
        borderColor: `hsla(210, 60%, 33%, 1)`,
        backgroundColor: `hsla(210, 60%, 33%, 0.8)`,
        fill: false,
        data: [{ x: 1, y: 2 }, { x: 2, y: 1 }],
      }
    ]
  },
  options: {
    elements: {
      point: {
        radius: 1,
        hoverRadius: 4,
      },
    },
    tooltips: {
      mode: 'index',
      intersect: false,
      position: 'nearest',
    },
    hover: {
      mode: 'index',
      intersect: false          
    }
  }
});
Run Code Online (Sandbox Code Playgroud)