【问题标题】:Chartjs does not render chart when set responsive option to true将响应选项设置为 true 时,Chartjs 不呈现图表
【发布时间】:2015-07-31 07:40:45
【问题描述】:

我正在为我的报告使用 chartjs 版本 1.02。我从文档中获取示例以呈现简单的折线图。当我体验这些选项时,我意识到有一个非常有用的选项(responsive)可以在调整浏览器大小时自动调整图表大小。在我将此选项放入选项对象之前,可以渲染图表并且一切正常。添加此“响应式”选项后,图表停止渲染。我想知道这个选项是否适用于折线图,或者这个选项必须依赖于我错过的其他选项。

这是我的代码

           var data = {
                labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
                datasets: [
                    {
                        label: 'My First dataset',
                        fillColor: 'rgba(220,220,220,0)',
                        strokeColor: '#2D7CFA',
                        pointColor: '#FFFFFF',
                        pointStrokeColor: '#2D7CFA',
                        pointHighlightFill: '#fff',
                        pointHighlightStroke: 'rgba(220,220,220,1)',
                        data: [65, 59, 80, 81, 56, 55, 40]
                    }
                ]
            };
            var options = {
                scaleFontColor: '#FFF',
                scaleLineColor: '#456A82',
                scaleFontSize: 10,
                tooltipFontSize: 10,
                tooltipTitleFontSize: 10,
                bezierCurve: false,
                pointDotStrokeWidth: 3,
                responsive: true // this breaks the chart
            };
            var ctx = document.getElementById('myChart').getContext('2d');
            var myLineChart = new Chart(ctx).Line(data, options);

【问题讨论】:

    标签: javascript chart.js


    【解决方案1】:

    当设置响应选项时,画布的宽度由其父级的宽度驱动。因此,请确保父级具有非 0 的 clientWidth。例如,如果父级浮动并相对于绝对定位的子级画布定位,则它的宽度折叠为 0 导致画布没有大小。可能有其他方式发生这种情况,但要解决您的问题,您只需要确保父级具有自己的宽度(也可以是 %)。

    【讨论】:

    • 还有谁知道如何确保父级的clientWidth不为零?我尝试在 css 中设置样式宽度:100% 和显示:块,但在绘制图表之前它仍然为零。
    猜你喜欢
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    相关资源
    最近更新 更多