我试图通过在同一画布上多次初始化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,{ value: 100,{ value: 20,{ value: 60,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,percentageInnerCutout : 90 }); }; </script> </body> </html>
谢谢,
约亨
解决方法
有2个canvas元素,并使用CSS将它们一个放在另一个上面.内部帆布具有内部甜甜圈,并且具有圆形边界,使得它尽可能少地覆盖外部甜甜圈.
预习
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而不是在画布中绘制矩形来解决这个问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。