【问题标题】:Chart.js canvas and chart width gets overwritten when redrawnChart.js 画布和图表宽度在重绘时被覆盖
【发布时间】:2019-02-24 20:15:11
【问题描述】:

我用 chart.js 制作的图表每次重绘时都会增长,我不知道为什么。 我的图表卡瓦斯代码是:

let tempChart = document.getElementById("tempChart").getContext('2d');
let pressureChart = document.getElementById("pressureChart").getContext('2d');
let O3Chart = document.getElementById("O3Chart").getContext('2d');
let PM1Chart = document.getElementById("PM1Chart").getContext('2d');
<canvas id="tempChart"></canvas>
<canvas id="pressureChart"></canvas>
<canvas id="O3Chart"></canvas>
<canvas id="PM1Chart"></canvas>

这是我每次想要绘制或重绘图表时调用的代码:

function createChart(chartLabels, chartData, chart, label, backgroundcolor, beginAtZero, borderColor) {

    let LineChart = new Chart(chart, {
        type: 'line',
        data: {
            labels: chartLabels,
            datasets: [{
                label: label,
                data: chartData,
                backgroundColor: backgroundcolor,
                pointRadius: 0,
                borderColor: borderColor
        }]
        },
        options: {
            responsive: false,
            scales: {
                yAxes: [{
                        ticks: {
                            beginAtZero: beginAtZero
                        }
                }
                ]
            }
        }
    })

}

我运行一次 createChart 之前画布的 CSS:

    width: 45%;
    padding: 20px 20px;
    border-bottom: 1px solid #dedede;

我运行 createChart 后的 CSS:

    display: block;
    height: 341px;
    width: 683px;

我已经为我的标签和数据使用空数组和完整数组测试了这段代码,在这两种情况下,每次调用 createChart 函数时图表都会增长。

【问题讨论】:

    标签: javascript html css web chart.js


    【解决方案1】:

    您使用的库 (chart.js) 似乎默认覆盖了这些 css 值。

    一种选择是在 createChart 函数结束时将这些值设置回正确的值。

    例如:

    tempChart.style.width = 45%;
    

    其他选项是在样式表中为它们添加强大的功能,!important,但这取决于 (chart.js) 的作用方式。

    【讨论】:

    • 谢谢,但似乎唯一的(老实说愚蠢的)错误是我忘记将响应设置为 true。一旦我这样做了,它就再次起作用了,但是感谢您的回答!
    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2012-11-29
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多