www.91084.com

GVKun编程网logo

javascript-无法使用jspdf和chartjs向画布添加背景色(javascript不可用怎么办)

12

本文将介绍javascript-无法使用jspdf和chartjs向画布添加背景色的详细情况,特别是关于javascript不可用怎么办的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面

本文将介绍javascript-无法使用jspdf和chartjs向画布添加背景色的详细情况,特别是关于javascript不可用怎么办的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于ichartjs:javascript不能进化么?、javascript – $.getJSON无法使用本地JSON文件、javascript – angular2和charts.js互动、javascript – Chart.js – 同一画布上的多个甜甜圈图表的知识。

本文目录一览:

javascript-无法使用jspdf和chartjs向画布添加背景色(javascript不可用怎么办)

javascript-无法使用jspdf和chartjs向画布添加背景色(javascript不可用怎么办)

我正在使用jspdf插件将条形图导出为pdf.图表上的条形为白色,因此当我导出为pdf(作为png图像)时,这些条在pdf的透明背景上不可见.我在容器上添加了灰色背景色,以使白色条清晰可见.当我将图形导出为pdf时,它仍显示透明背景而不是灰色.有人可以告诉我我在想什么吗?

javascript:

    $(document).ready(function(){

    $('#hyppdf').click(function(){
    var canvasImg = document.getElementById("myChart").toDataURL("image/png",     
    1.0);
    var doc = new jsPDF();
    doc.setFontSize(33);
    doc.setFillColor(135, 124,45,0);
    doc.addImage(canvasImg, 'png', 10, 10, 150, 100);
    doc.save('sample.pdf');
    })

    var ctx = document.getElementById("myChart").getContext('2d');

  var myChart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: ["M", "T", "W", "T", "F", "S", "S"],
    datasets: [{
      label: 'apples',
      data: [12, 19, 3, 17, 28, 24, 7],
      backgroundColor: "rgba(255,255,255,1)"
    }, {
      label: 'oranges',
      data: [30, 29, 5, 5, 20, 3, 10],
      backgroundColor: "rgba(255,153,0,1)"
    }]
  }
});

})

的HTML:

    <div>
  <h2> <a id="hyppdf" href="#">download</a></h2>
  <div>
    <canvas id="myChart"></canvas>
  </div>
</div>

https://jsfiddle.net/2gnajnz4/5/

谢谢

解决方法:

我认为您可以通过在图像上添加rect并将其导出为pdf来解决您的问题:

  doc.setFillColor(204, 204,204,0);
  doc.rect(10, 10, 150, 160, "F");

查看更新的fiddle:

ichartjs:javascript不能进化么?

ichartjs:javascript不能进化么?

javascript不能进化么?语法更简单等等,或者浏览器可以使用python解释器

javascript – $.getJSON无法使用本地JSON文件

javascript – $.getJSON无法使用本地JSON文件

我拼命想要获得一个站点的本地构建来获取JSON文件(也是本地的)没有运气.确切的代码在我的服务器上工作得很好,但一旦在本地,就会中断.

我使用jQuery获取JSON,如下所示:

$.getJSON(
 "lib/js/app.json",
     function(data){
        $.each(data, function(i,user){
        +'<img src="'+user.thumbnail+'"/>
        });
      }
);

并收到此控制台错误:

XMLHttpRequest cannot load file://localhost/Users/blakestruhs/new/lib/js/app.json. Origin null is not allowed by Access-Control-Allow-Origin.

我在这里想要一个答案.请帮我.

解决方法:

我认为你使用像chrome这样的Webkit浏览器,对吗? Chome看不到两个本地文件之间的关系.使用Firefox或在网络服务器上运行;)

“Origin null is not allowed by Access-Control-Allow-Origin” in Chrome. Why?

javascript – angular2和charts.js互动

javascript – angular2和charts.js互动

我目前正在使用来自charts.js的一些图表,我正在添加一些与它们的简单交互,当用户点击条形图中的条形图时,变量会保存单击哪个条形图.

此变量更新折线图,此图表使用先前保存在数组中的数据进行更新,因此每次用户单击条形图中的不同栏时,折线图都应更改.

我的问题是变量没有改变我得到两个不同的值.
默认情况下,变量初始化为0.

控制台日志输出:

from barchart click:3   
from change function:0 

from barchart click:2  
from change function:0

我从同时发生的2个不同功能打印这些线.

这是在条形图上单击条形图时应更改变量值的函数.

  graphClickEvent(event:any,array:any){

    if(array[0]){

       this.offsetGraficas = array[0]._index;
     console.log("from barchart click:"+this.offsetGraficas);
    }

}

和另一个同时发生的功能:

changeHistorico(n:number) {
   console.log("from change function:"+this.offsetGraficas);

    this.show_historico = true;

    //some unrelated code goes here
}

从我看到的,首先执行graphClickEvent,但我没有对变量进行任何更改.
为什么它没有按预期工作?

最佳答案
在graphClickEvent中看起来像“this”,而changeHistorico中的“this”与此不同.

javascript – Chart.js – 同一画布上的多个甜甜圈图表

javascript – Chart.js – 同一画布上的多个甜甜圈图表

我试图通过在同一画布上多次初始化Chart.js来模拟多层圆环图.当时只有一个图表可见.当你将鼠标悬停在其位置上时,另一个将会显示…

有人知道如何让两者同时可见吗?

这是我的代码:

<!doctype html>
<html>
    <head>
        <title>Doughnut Chart</title>
        <script src="../Chart.js"></script>
        <style>
            body{
                padding: 0;
                margin: 0;
            }
            #canvas-holder-1{
              position: fixed;
              top: 50%;
              left: 50%;
              margin-top: -250px;
              margin-left: -250px;
            }
        </style>
    </head>
    <body>
        <div id="canvas-holder-1">
            <canvas id="chart-area" width="500" height="500"/>
        </div>
<script>

        var doughnutData = [
                {
                    value: 20,
                    color:"#F7464A",
                    highlight: "#FF5A5E",
                    label: "Red",
                },
                {
                    value: 50,
                    color: "#46BFBD",
                    highlight: "#5AD3D1",
                    label: "Green"
                },
                {
                    value: 30,
                    color: "#fdb45C",
                    highlight: "#FFC870",
                    label: "Yellow"
                },
                {
                    value: 40,
                    color: "#949FB1",
                    highlight: "#A8B3C5",
                    label: "Grey"
                },
                {
                    value: 120,
                    color: "#4D5360",
                    highlight: "#616774",
                    label: "Dark Grey"
                }

            ];
            var doughnutData2 = [
                {
                    value: 10,
                    color:"#F7464A",
                    highlight: "#FF5A5E",
                    label: "Red",
                },
                {
                    value: 100,
                    color: "#46BFBD",
                    highlight: "#5AD3D1",
                    label: "Green"
                },
                {
                    value: 20,
                    color: "#fdb45C",
                    highlight: "#FFC870",
                    label: "Yellow"
                },
                {
                    value: 60,
                    color: "#949FB1",
                    highlight: "#A8B3C5",
                    label: "Grey"
                },
                {
                    value: 120,
                    color: "#4D5360",
                    highlight: "#616774",
                    label: "Dark Grey"
                }

            ];

            window.onload = function(){
                var ctx = document.getElementById("chart-area").getContext("2d");
                window.myDoughnut = new Chart(ctx).Doughnut(doughnutData, {
                  responsive : false,
                  animateScale: false,
                  animateRotate:false,
                  animationEasing : "eaSEOutSine",
                  animationSteps : 80,
                  percentageInnerCutout : 90,
                });
              myDoughnut.outerRadius= 200;
                window.myDoughnut2 = new Chart(ctx).Doughnut(doughnutData2, {
                  responsive : false,
                  animateScale: false,
                  animateRotate:false,
                  animationEasing : "eaSEOutSine",
                  animationSteps : 80,
                  percentageInnerCutout : 90
                                  });
            };



    </script>
    </body>
</html>

谢谢,
约亨

解决方法:

有2个canvas元素,并使用CSS将它们一个放在另一个上面.内部帆布具有内部甜甜圈,并且具有圆形边界,使得它尽可能少地覆盖外部甜甜圈.

预习

enter image description here

HTML

<div id="w">
    <canvas id="d1" height="400" width="400"></canvas>
    <canvas id="d2" height="320" width="320"></canvas>
</div>

CSS

#w {
    position: relative;
    height: 400px;
    width: 400px;
}

#d1, #d2 {
    position: absolute;
}

#d1 {
    top: 0px;
    left: 0px;
}

#d2 {
    border-radius: 150px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

小提琴 – https://jsfiddle.net/rhLxawt5/

在这一点上,我们有一个相当不错的饼图与不重叠的甜甜圈,但我们的工具提示将被剪掉,因为它们仍然是他们各自的画布的一部分.

我们可以通过编写customTooltips函数来使用div而不是在画布中绘制矩形来解决这个问题.

小提琴 – https://jsfiddle.net/rca0ync3/

关于javascript-无法使用jspdf和chartjs向画布添加背景色javascript不可用怎么办的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于ichartjs:javascript不能进化么?、javascript – $.getJSON无法使用本地JSON文件、javascript – angular2和charts.js互动、javascript – Chart.js – 同一画布上的多个甜甜圈图表的相关知识,请在本站寻找。

本文标签: