【问题标题】:Chartjs disable color change on hover withouth disabling tooltipsChart Js 在不禁用工具提示的情况下禁用悬停颜色更改
【发布时间】:2021-02-05 07:18:06
【问题描述】:

我一直试图在将鼠标悬停在图表画布上时禁用所有颜色更改,但如果不禁用图表上的所有工具提示和其他交互,我仍然无法删除所有颜色更改。我用来设置颜色的代码是:

const color = array.map(a => getRandomColorWithAlphaOf(0.7))
    const dataTest = {
        labels: turns,
        datasets: array.map((a,i) => (
            {
            label: a.nick,
            fill: false,
            data: a.data.map(d => d.cost),
            borderColor: color[i],
            backgroundColor: color[i],
            hoverBackgroundColor: color[i],
            hoverBorderColor: color[i],
            pointBackgroundColor: color[i],
            pointBorderColor: color[i],
            pointHoverBackgroundColor: color[i],
            pointHoverBorderColor: color[i]
        }
        ))
    }

当鼠标悬停在点上时,它会改变颜色。

图表创建代码在这里:

const lineChart = new Chart (ctx, {
        type: "line",
        data: dataTest,
        options: {
            legend: {
                display: false
            },
            legendCallback: (chart) => {
                var text = [];
                text.push('<ul>');
                for (var i=0; i <chart.data.datasets.length; i++) {
                    console.log(chart.data.datasets[i]); 
                    text.push('<li>');
                    text.push('<span style="background-color:' + chart.data.datasets[i].borderColor + '">' +" &nbsp;  &nbsp;  &nbsp; " +'</span>');
                    text.push('<span">' + chart.data.datasets[i].label + '</span>');
                    text.push('</li>');
                }
                text.push('</ul>');
                return text.join("");
            }
    }
    })

有没有办法摆脱所有的颜色变化而不使用像“事件:[]”这样会同时禁用工具提示的东西?

编辑:在 useEffect 中移动颜色生成解决了这个问题。我猜它会多次生成颜色。

【问题讨论】:

  • 猜猜你的问题出在你的颜色数组上。试着检查一下。因为当我设置硬编码的颜色时,它似乎工作得很好jsfiddle.net/Leelenaleee/deL075xg/7
  • 谢谢你也这样做了,表现符合预期。我注意到悬停颜色实际上是我想要的颜色,而我不想要的颜色是不悬停时的颜色。还注意到跨度的颜色与分配给它的颜色不同,而 console.log(chart.data.datasets[i].borderColor) 显示我想要的颜色。

标签: javascript reactjs hover chart.js


【解决方案1】:

在 useEffect 中通过移动颜色生成解决了这个问题。我猜它会多次生成颜色。

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 2018-09-01
    • 2019-05-29
    • 2018-12-08
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    相关资源
    最近更新 更多