javascript - ChartJS 单击栏并更改其背景颜色

标签 javascript chart.js

我正在使用 chartjs 绘制一个简单的条形图。条形图是可点击的,我会注意到用户是否点击了条形图。现在我想更改已单击的栏的背景以指示该栏被主动选择。

这可能吗?

谢谢

编辑:我添加了一个小例子。 https://jsfiddle.net/10n39cLz/1/ 单击的元素将使用以下方法收集:this.getElementAtEvent(e)

最佳答案

我找到了一个非常优雅的解决方案,只需修改保存在数组中的 backgroundColor。遗憾的是 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
    }
  }
})

关于javascript - ChartJS 单击栏并更改其背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38307501/

相关文章:

javascript - 如何在一个组件vue上创建多个图表

javascript - 是否可以从云中调用 Parse 定义的云代码函数?

javascript - 使用 Flash、Javascript 和 JSP 优化我的 Web 应用程序

javascript - 如何抑制浏览器中的 javascript 错误?

javascript - 在 GOOGLE map API v3 上显示圆圈内的点

javascript - 为什么我用 Chart.js 创建的圆环图没有出现?

javascript - 如何使用 ChartJS 在水平条形图上绘制垂直线?

javascript - Chart.js - 条形图上的水平线干扰工具提示

javascript - 方法作为原型(prototype)中的属性

angular - 如何为 ng2-charts 条形图设置静态标签?