如何隐藏 chartjs 图表?

How can I hide a chartjs chart?

我正在使用 chartJS 和 gaugeJS 创建一个仪表板,我添加了按钮以使用 css 折叠 divs(它隐藏了除按钮和标题之外的所有内容),它与gaugeJS、h2p 等,但不适用于 chartJS。

代码如下:

<div class="case presence maximised">
    <canvas id="presence" height="200" width="250"></canvas>
</div>
div.minimised * {
    display: none;
}

div.minimised button {
    display: block;
}
graph1 = new Chart(document.getElementById("presence"),
    {
        type: "doughnut",
        data: {
            labels: [
                "a",
                "b",
                "c"
                "d"
            ],
            datasets: [{
                data: [1, 1, 1, 1],
                backgroundColor: [
                    "blue",
                    "brown",
                    "grey",
                    "darkcyan",
                ],
                datalabels: {
                    anchor: "start",
                    align: "start",
                    color: "#fff"
                },
                borderColor: function () {
                    return $(".case").css("background-color");
                }
            }]
        },
        options: {
            legend: {
                display: false
            },
            plugins: {
                datalabels: {
                    backgroundColor: function (context) {
                        return context.dataset.backgroundColor;
                    },
                    borderColor: "#fff",
                    borderRadius: 10,
                    display: function (context) {
                        return context.dataset.data[context.dataIndex] > 0;
                    },
                    formatter: function (value, context) {
                        return context.chart.data.labels[context.dataIndex];
                    },
                    offset: 5,
                    padding: 10,
                    font: {
                        weight: "bold",
                        size: 12
                    },
                    margin: 10
                },
                labels: {
                    render: "value",
                    fontColor: "#fff",
                }
            },
            cutout: "75%"
        }
    })

按钮只是add/remove minimised class 到 div 一个js函数

我尝试将 canvas width/height 设置为 01px in css, visibility: hidden 但是它没有改变任何东西,图表仍然可见并且它的大小没有改变。

编辑:添加了 js 图表代码

我找到了解决方案:我只需要将我的 canvas 放在 div 中。我不知道是不是因为 CSS 或 ChartJS 无法隐藏 canvas' 显示,但现在使用 div 它可以工作(div 是隐藏的,不是只有 canvas).

我从

<div class="case presence maximised">
    <canvas id="presence" height="200" width="250"></canvas>
</div>

<div class="case presence maximised">
    <div>
        <canvas id="presence" height="200" width="250"></canvas>
    </div>
</div>