【前端】关于chartjs表格的大小问题

我创建出来的表格总是和自定义的canvas大小无关呢

//html

<canvas id="chartTest" width="300" height="300"></canvas>

//js(这就是官网的示例)

var ctx = $('#chartTest')[0].getContext('2d');

var chart = new Chart(ctx,{

type: 'bar',

data: {

labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],

datasets: [{

label: '# of Votes',

data: [12, 19, 3, 5, 2, 3],

backgroundColor: [

'rgba(255, 99, 132, 0.2)',

'rgba(54, 162, 235, 0.2)',

'rgba(255, 206, 86, 0.2)',

'rgba(75, 192, 192, 0.2)',

'rgba(153, 102, 255, 0.2)',

'rgba(255, 159, 64, 0.2)'

],

borderColor: [

'rgba(255,99,132,1)',

'rgba(54, 162, 235, 1)',

'rgba(255, 206, 86, 1)',

'rgba(75, 192, 192, 1)',

'rgba(153, 102, 255, 1)',

'rgba(255, 159, 64, 1)'

],

borderWidth: 1

}]

},

options: {

scales: {

yAxes: [{

ticks: {

beginAtZero:true

}

}]

}

}

})

图表显示了,但属性却是这样的:

【前端】关于chartjs表格的大小问题

canvas的宽高和我自定义的完全无关呢
请问哪里出错了吗

回答

官方文档中的说明:

// Any of the following formats may be used

var ctx = document.getElementById("myChart");

var ctx = document.getElementById("myChart").getContext("2d");

var ctx = $("#myChart");

var ctx = "myChart";

其中并没有说画布的定义方法为var ctx = $('#chartTest')[0].getContext('2d'),试一下将第一行的var ctx = $('#chartTest')[0].getContext('2d')改为var ctx = document.getElementById('charTest')

Update

参见:http://www.chartjs.org/docs/l...

宽高检测不能直接从canvas获取,需要在外部嵌套一个div,设置div样式:

#chart-wrapper {

position: relative; // 这个必须要有,否则里面会生成的iframe绝对定位,会以外层第一个有定位的元素的坐标系为准

width: 400px;

height: 400px;

}

html:

<div id="chart-wrapper">

<canvas id="myChart"></canvas>

</div>

生成的比例宽高比都是2:1,,那外面盒子就设置2:1的宽高比呗

以上是 【前端】关于chartjs表格的大小问题 的全部内容, 来源链接: utcz.com/a/80241.html

回到顶部