Я хочу изменить размер диаграммы через выпадающее меню.
Диаграмма помещена в раздел graphearea.
<div class="grapharea" >
<canvas id="myChartA" class="myChart"></canvas>
</div>
Размер класса "myChart" равен 100%.Поэтому, если размер «graphearea» изменяется, размер myChat также изменяется.
Размер «graphearea» будет изменен функцией columnSizeSet, а размер «.myChart» будет сброшен.
function columnSizeSet() {
obj = document.setCol.sizeOfCol;
index = obj.selectedIndex;
width = obj.options[index].value;
console.log('width', width);
$('.grapharea').css('width', width);
$('.myChart').css('width','100%');
$('.myChart').css('height', '100%');
myChartA.update();
}
Наконец, myChartA обновлен.
Но он не будет работать так, как я хочу.
Во-первых, диаграмма отображается нормально.выберите размер диаграммы относительно ширины браузера.![enter image description here](https://i.stack.imgur.com/KnvOq.png)
Затем выберите размер диаграммы относительно ширины браузера.Диаграмма была изменена, однако диаграмма размыта.
Если я изменил размер окна просмотра, оно станет четким.
![enter image description here](https://i.stack.imgur.com/eGFi2.png)
Почемуразве это не красиво рисовать с самого начала, когда я меняю размер?Холст Chartjs имеет буфер для рисования, и только размер буфера изменяется вышеуказанным способом.Я предполагаю, что буфер был очищен и перерисован при изменении размера окна.
Как управлять перерисовкой?
Я реализовал его как параметр Chart.js.
responsive: true,
maintainAspectRatio: true,
Разве это не работает на перерисовке?
У меня был исходный код в CODE Pen .