ChartJSを使用して一部のデータを表示していますが、IE、Firefox、Safariでcanvas要素が正しくレンダリングされていません。
私の推測では、背景色のプロパティはChromeで正常に機能するため、他のブラウザで使用されているプレフィックスがありません。
他の誰かがこの問題を抱えていましたか?
Chrome:
コード:
window.onload = function() {
var ctx = document.getElementById("canvas");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"],
datasets: [{
label: '# of Value',
data: [12, 19, 3, 5, 2, 3, 10, 29],
backgroundColor: [
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)'
],
borderColor: [
'rgba(33, 145, 81, 1)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
};
});
問題は、backgroundColor
プロパティに単一の配列ではなくColor
の配列を与えていることです。
fill
プロパティがtrue
に設定されている折れ線グラフにはColor
が1つだけ必要です。そうしないと、グラフのように壊れてしまいます。
backgroundColor: [
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)',
'rgba(33, 145, 81, 0.2)'
],
宛先:
backgroundColor: 'rgba(33, 145, 81, 0.2)',
そしてそれはあなたに この結果 あなたが使っているどんなブラウザでも与えるでしょう。
(テストはIE 11およびFirefox48)で行われました
私の場合、私はrgb
を使用していました
backgroundColor: 'rgb(33, 145, 81, 0.2)',
borderColor: 'rgb(255, 134, 25, 1)',
rgba
の代わりに
backgroundColor: 'rgba(33, 145, 81, 0.2)',
borderColor: 'rgba(255, 134, 25, 1)',