Chart.js 图表Js中的合并Jquery旋钮功能
我正在使用ChartJS的甜甜圈图,下面是我的代码Chart.js 图表Js中的合并Jquery旋钮功能,chart.js,Chart.js,我正在使用ChartJS的甜甜圈图,下面是我的代码 <!doctype html> <html> <head> <title>Doughnut Chart</title> <script src="jquery-1.11.3.min.js"></script> <script src="jquery.knob.js"></script&g
<!doctype html>
<html>
<head>
<title>Doughnut Chart</title>
<script src="jquery-1.11.3.min.js"></script>
<script src="jquery.knob.js"></script>
<script src="../Chart.js"></script>
<style>
body{
padding: 0;
margin: 0;
}
#canvas-holder{
width:30%;
}
</style>
</head>
<body>
<div id="canvas-holder">
<canvas id="chart-area" width="250" class="knob" height="250"/>
</div>
<script>
var doughnutData = [
{
value: 200,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Red"
},
{
value: 200,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Green"
},
{
value: 200,
color: "#FDB45C",
highlight: "#FFC870",
label: "Yellow"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#4D5360",
highlight: "#616774",
label: "Dark Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 200,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
}
];
var options = {
//Boolean - Whether we should show a stroke on each segment
segmentShowStroke : true,
//String - The colour of each segment stroke
segmentStrokeColor : "#fff",
//Number - The width of each segment stroke
segmentStrokeWidth : 0,
//Number - The percentage of the chart that we cut out of the middle
percentageInnerCutout : 80, // This is 0 for Pie charts
//Number - Amount of animation steps
animationSteps : 100,
//String - Animation easing effect
animationEasing : "easeOutBounce",
//Boolean - Whether we animate the rotation of the Doughnut
animateRotate : true,
//Boolean - Whether we animate scaling the Doughnut from the centre
animateScale : false,
showTooltips: false
}
window.onload = function(){
var ctx = document.getElementById("chart-area").getContext("2d");
var myDoughnut = new Chart(ctx).Doughnut(doughnutData, options);
$("#chart-area").click( function(evt){
var activePoints = myDoughnut.getSegmentsAtEvent(evt);
/* do something */
}
);
};
</script>
</body>
</html>
油炸圈饼图
身体{
填充:0;
保证金:0;
}
#帆布架{
宽度:30%;
}
var doughnutData=[
{
价值:200,
颜色:#F7464A“,
亮点:“FF5A5E”,
标签:“红色”
},
{
价值:200,
颜色:“46BFBD”,
亮点:“5AD3D1”,
标签:“绿色”
},
{
价值:200,
颜色:“FDB45C”,
亮点:“FFC870”,
标签:“黄色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“4D5360”,
亮点:“616774”,
标签:“深灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
},
{
价值:200,
颜色:“949FB1”,
亮点:“A8B3C5”,
标签:“灰色”
}
];
变量选项={
//布尔-我们是否应该在每个线段上显示笔划
这是真的,
//字符串-每段笔划的颜色
segmentStrokeColor:#fff“,
//数字-每个线段笔划的宽度
分段行程宽度:0,
//数字-我们从中间剪下的图表百分比
percentageInnerCutout:80,//对于饼图,这是0
//Number-动画步数
动画步骤:100,
//字符串动画效果
动画化:“easeOutBounce”,
//布尔-是否设置圆环旋转的动画
动画片:对,
//布尔值-是否设置从中心缩放圆环的动画
动画缩放:错误,
显示工具提示:false
}
window.onload=函数(){
var ctx=document.getElementById(“图表区”).getContext(“2d”);
var myDoughnut=新图表(ctx).Doughnut(doughnutData,选项);
$(“#图表区”)。单击(函数(evt){
var activePoints=myDoughnut.getSegmentsAtEvent(evt);
/*做点什么*/
}
);
};
<> P>在画布上点击更新值,在炸圈饼的中间(就像jQuery旋钮)一样,即滑动和点击画布上的值更新。有没有办法合并这两个库的功能?最好使用该控件。也就是说,您也可以使用Chart.js。这里是一个合理的近似值(注意,我对某些部分使用了jQuery,但您可以使用普通javascript进行同样的操作) CSS
<style>
.myChartWrapper {
position: relative;
display: inline-block;
}
.myChartValue {
border: none;
font-family: 'Helvetica';
font-size: 20px;
overflow: visible;
width: 2em;
white-space: nowrap;
text-align: center;
position: absolute;
background-color: transparent;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.myChartValue::-ms-clear {
display: none;
}
</style>
myChartWrapper先生{
位置:相对位置;
显示:内联块;
}
.myChartValue{
边界:无;
字体系列:“Helvetica”;
字体大小:20px;
溢出:可见;
宽度:2米;
空白:nowrap;
文本对齐:居中;
位置:绝对位置;
背景色:透明;
左:50%;
最高:50%;
转换:翻译(-50%,-50%);
}
.myChartValue::-ms清除{
显示:无;
}
HTML
<div class="myChartWrapper">
<canvas id="myChart"></canvas>
<input id="myChartValue" class="myChartValue" />
</div>
Javascript
var value = 20;
var MAX = 200;
var STEP = 1;
var HALFSETCOLOR = "rgba(154, 225, 254, 1)";
var SETCOLOR = "rgba(134, 205, 234, 1)";
var UNSETCOLOR = "rgba(237, 237, 237, 1)";
var data = [];
for (var i = 0; i < MAX; i = i + STEP) {
data.push({
value: STEP,
color: (i < value) ? SETCOLOR : UNSETCOLOR,
label: i
})
}
var canvas = document.getElementById("myChart");
var ctx = canvas.getContext("2d");
var myDoughnutChart = new Chart(ctx).Doughnut(data, {
animation: false,
segmentShowStroke: false,
showTooltips: false
});
$("#myChartValue").val(value);
// half set the sectors
canvas.onmousedown = function (evt) {
var activeSegments = myDoughnutChart.getSegmentsAtEvent(evt);
if (activeSegments.length) {
var value = Number(activeSegments[0].label);
var crossed = false;
myDoughnutChart.segments.forEach(function (segment) {
if (Number(segment.label) >= value)
crossed = true;
if (!crossed && segment.fillColor !== SETCOLOR)
segment.fillColor = HALFSETCOLOR;
else if (crossed && segment.fillColor !== UNSETCOLOR)
segment.fillColor = HALFSETCOLOR;
})
myDoughnutChart.update()
myDoughnutChart.value = value;
$("#myChartValue").val(value);
}
};
canvas.onmousemove = function (evt) {
if (myDoughnutChart.value !== undefined) {
canvas.onmousedown(evt)
}
}
// set / unset sectors
canvas.onmouseup = function () {
var value = myDoughnutChart.value;
if (value !== undefined) {
var crossed = false;
myDoughnutChart.segments.forEach(function (segment, i) {
if (Number(segment.label) >= value)
crossed = true;
if (!crossed)
segment.fillColor = SETCOLOR;
else if (crossed)
segment.fillColor = UNSETCOLOR;
})
myDoughnutChart.value = undefined;
myDoughnutChart.update()
}
};
$("#myChartValue").on("change", function () {
myDoughnutChart.value = Number($("#myChartValue").val());
canvas.onmouseup();
})
var值=20;
var MAX=200;
var阶跃=1;
var HALFSETCOLOR=“rgba(154225 254,1)”;
var SETCOLOR=“rgba(134205234,1)”;
var UNSETCOLOR=“rgba(237,237,237,1)”;
var数据=[];
对于(变量i=0;i