#javascript #jquery #html #chart.js
#javascript #jquery #HTML #chart.js
Вопрос:
Я хочу написать текстовый центр диаграммы пончиков. Я написал этот код ниже
<script>
$(document).ready(function () {
var data = {
labels: [
""
],
datasets: [
{
data: [165],
backgroundColor: [
"#FF6384"
],
hoverBackgroundColor: [
"#FF6384"
]
}]
};
var ctx = $('#chart-area').get(0).getContext("2d");
var myDoughnutChart = new Chart(ctx, {
type: 'doughnut',
data: data,
animation: true,
responsive: true,
showTooltips: false,
percentageInnerCutout: 70,
segmentShowStroke: false,
onAnimationComplete: function () {
var canvasWidthvar = $('#chart-area').width();
var canvasHeight = $('#chart-area').height();
var constant = 114;
var fontsize = (canvasHeight / constant).toFixed(2);
//ctx.font="2.8em Verdana";
ctx.font = fontsize "em Verdana";
ctx.textBaseline = "middle";
var total = 0;
$.each(data, function () {
total = parseInt(this.value, 10);
});
var tpercentage = ((data[0].value / total) * 100).toFixed(2) "%";
console.log(total);
var textWidth = ctx.measureText(tpercentage).width;
var txtPosx = Math.round((canvasWidthvar - textWidth) / 2);
ctx.fillText(tpercentage, txtPosx, canvasHeight / 2);
}
});
});
Я хотел сделать это после завершения анимации и использовал функцию onAnimationComplete, но функция onAnimationComplete здесь не работает.
Комментарии:
1. вы когда-нибудь решали эту проблему, поскольку у меня такая же проблема
Ответ №1:
Столкнулся с той же проблемой. Вместо этого используйте onComplete() в options.animation:
options:{
animation:{
onComplete : function(){
/*Your code here*/
}
}
}
Комментарии:
1. Вам действительно следует добавить некоторое объяснение того, почему этот код должен работать — вы также можете добавлять комментарии в сам код — в его текущем виде он не содержит никаких объяснений, которые могли бы помочь остальной части сообщества понять, что вы сделали для решения / ответа на вопрос.