Chr*_*ian 5 javascript chart.js
我正在使用 Chartjs 绘制一个简单的条形图。条形图是可单击的,我会注意到用户是否单击条形图。现在我想更改已单击的栏的背景以指示该栏已被主动选择。
这可能吗?
谢谢
编辑:我添加了一个小例子。
https://jsfiddle.net/10n39cLz/1/
单击的元素将使用以下方式收集:this.getElementAtEvent(e)
我找到了一个非常优雅的解决方案,只需修改数组中保存的背景颜色即可。遗憾的是 render() 还不够,因此我需要执行 update() ..
顺便希望我能使用 ES6 :-)
var backgroundColor = ['rgb(124, 181, 236)',
'rgb(124, 181, 236)',
'rgb(124, 181, 236)',
'rgb(124, 181, 236)',
'rgb(124, 181, 236)',
'rgb(124, 181, 236)'];
var a = new Chart(document.getElementById("trendChart"), {
type: 'bar',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: backgroundColor
}]
},
options:{
onClick: function(e){
var element = this.getElementAtEvent(e);
for(var i=0;i<backgroundColor.length;i++){
backgroundColor[i] = 'rgb(124, 181, 236)';
}
backgroundColor[element[0]._index] = 'red';
this.update()
},
scales: {
yAxes: [{
ticks: {
fontColor:'#fff'
}
}],
xAxes: [{
ticks: {
fontColor:'#fff'
}
}],
},
legend:{
display:false
}
}
})
Run Code Online (Sandbox Code Playgroud)