Mam stronę internetową, która używa Chart.js. Na tej stronie wyświetlam trzy wykresy pączków. Na środku każdego wykresu chcę pokazać procent wypełnionego pączka. Obecnie mam następujący kod, który można zobaczyć w tym Fiddle.Chart.js - Pozycjonowanie Etykieta pączka
function setupChart(chartId, progress) {
var canvas = document.getElementById(chartId);
var context = canvas.getContext('2d');
var remaining = 100 - progress;
var data = {
labels: [ 'Progress', '', ],
datasets: [{
data: [progress, remaining],
backgroundColor: [
'#8FF400',
'#FFFFFF'
],
borderColor: [
'#8FF400',
'#408A00'
],
hoverBackgroundColor: [
'#8FF400',
'#FFFFFF'
]
}]
};
var options = {
responsive: true,
maintainAspectRatio: false,
scaleShowVerticalLines: false,
cutoutPercentage: 80,
legend: {
display: false
},
animation: {
onComplete: function() {
var xCenter = (canvas.width/2) - 20;
var yCenter = canvas.height/2 - 40;
context.textAlign = 'center';
context.textBaseline = 'middle';
var progressLabel = data.datasets[0].data[0] + '%';
context.font = '20px Helvetica';
context.fillStyle = 'black';
context.fillText(progressLabel, xCenter, yCenter);
}
}
};
Chart.defaults.global.tooltips.enabled = false;
var chart = new Chart(context, {
type: 'doughnut',
data: data,
options: options
});
}
Wykres "działa". Ale problem polega na renderowaniu etykiety. Etykieta nie jest wyśrodkowana pionowo i poziomo w środku pączka. Pozycja etykiety zmienia się również w zależności od rozdzielczości ekranu. Możesz zobaczyć pozycję zmiany etykiety, zmieniając rozmiar ramki, w której wykresy są renderowane w ramach Fiddle.
Moje pytanie brzmi: jak konsekwentnie pozycjonować procent w środku pączka? Moja strona to strona responsywna, więc ważne jest stałe pozycjonowanie. Nie jestem jednak pewien, co jeszcze mogę zrobić. Czuję, że właściwości textAlign
i textBaseline
nie działają lub nie rozumiem ich użycia.
Dzięki!
wolisz używać wersji Chart.JS że masz na skrzypcach, albo czy rozważyłbyś użycie V2.1? –