javascript – Chartjs v2描边阴影

前端之家收集整理的这篇文章主要介绍了javascript – Chartjs v2描边阴影前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在线图上使用一个笔触.但是我发现的每个解决方案都只适用于chartjs v1.

他们的最新解决方案是什么?

多数民众赞成我用chartjs v1设计的,但就像我说的那样,我发现无法用版本2做到这一点.

jsfiddle

Chart.types.Line.extend({
  name: "LineAlt",initialize: function () {
    Chart.types.Line.prototype.initialize.apply(this,arguments);

    var ctx = this.chart.ctx;
    var originalStroke = ctx.stroke;
    ctx.stroke = function () {
      ctx.save();
      ctx.shadowColor = '#E56590';
      ctx.shadowBlur = 10;
      ctx.shadowOffsetX = 0;
      ctx.shadowOffsetY = 4;
      originalStroke.apply(this,arguments)
      ctx.restore();
    }
  }
});

var data = {
  labels: ["January","February","March","April","May","June","July"],datasets: [
    {
      label: "My First dataset",fillColor: "#fff",strokeColor: "#ffb88c",pointColor: "#fff",pointStrokeColor: "#ffb88c",pointHighlightFill: "#ffb88c",pointHighlightStroke: "#fff",data: [65,59,80,81,56,55,40]
    }
  ]
};


var ctx = document.getElementById("canvas").getContext("2d");
var myChart = new Chart(ctx).LineAlt(data,{
  datasetFill: false
});

HTML:

<canvas id="canvas" width="600" height="300" style="background-color:#fff"></canvas>

解决方法

是!

您可以通过以下方式使用ChartJS v2为折线图完成相同的描边阴影效果

let draw = Chart.controllers.line.prototype.draw;
Chart.controllers.line = Chart.controllers.line.extend({
    draw: function() {
        draw.apply(this,arguments);
        let ctx = this.chart.chart.ctx;
        let _stroke = ctx.stroke;
        ctx.stroke = function() {
            ctx.save();
            ctx.shadowColor = '#E56590';
            ctx.shadowBlur = 10;
            ctx.shadowOffsetX = 0;
            ctx.shadowOffsetY = 4;
            _stroke.apply(this,arguments)
            ctx.restore();
        }
    }
});

let ctx = document.getElementById("canvas").getContext('2d');
let myChart = new Chart(ctx,{
    type: 'line',data: {
        labels: ["January",datasets: [{
            label: "My First dataset",40],borderColor: '#ffb88c',pointBackgroundColor: "#fff",pointBorderColor: "#ffb88c",pointHoverBackgroundColor: "#ffb88c",pointHoverBorderColor: "#fff",pointRadius: 4,pointHoverRadius: 4,fill: false
        }]
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<canvas id="canvas" width="600" height="300" style="background-color:#fff"></canvas>

猜你在找的JavaScript相关文章