html表格中有chart.js饼图。问题:在缩小然后放大时,单元格不会调整到初始大小。布局如下所示:
__________________________
| inner div | inner div |
|_____________|____________|
| | |
| Pie1 | Pie2 |
|_____________|____________|我已经引用了调整大小的documentation和这个link来在options对象中添加responsive和maintainAspectRatio字段。
如果设置为responsive:true,则允许图表在缩放时调整大小。
设置maintainAspectRatio:false,以修复之前的不规则缩放问题,即多个图表没有按比例调整大小,因为它们占用了表单元格的宽度。
仅供参考,在github here中提到的chart.js缩放有一个模糊的文本问题。
JS fiddle上问题的源码:http://jsfiddle.net/rfaLvuho/。
使用缩小和放大可重现图像。
发布于 2019-01-18 17:34:45
您可以切换到布局的<div>元素来修复此问题。我在下面的代码片段中使用了float,但它也应该适用于flex或grid布局。
var randomScalingFactor = function() {
return Math.round(Math.random() * 100);
};
chartColors = {
red: 'rgb(255, 99, 132)',
orange: 'rgb(255, 159, 64)',
yellow: 'rgb(255, 205, 86)',
green: 'rgb(75, 192, 192)',
blue: 'rgb(54, 162, 235)',
purple: 'rgb(153, 102, 255)',
grey: 'rgb(201, 203, 207)'
};
var config = {
type: 'pie',
data: {
datasets: [{
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
],
backgroundColor: [
chartColors.red,
chartColors.orange,
chartColors.yellow,
chartColors.green,
chartColors.blue,
],
label: 'Dataset 1'
}],
labels: [
'Red',
'Orange',
'Yellow',
'Green',
'Blue'
]
},
options: {
responsive: true,
maintainAspectRatio: false,
legend: false
}
};
var myPie1 = new Chart('chart-area1', config);
var myPie2 = new Chart('chart-area2', config);.canvas-holder {
width: 50%;
float: left;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script>
<div class="canvas-holder">
<canvas id="chart-area1"></canvas>
</div>
<div class="canvas-holder">
<canvas id="chart-area2"></canvas>
</div>
https://stackoverflow.com/questions/54249422
复制相似问题