Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chart.js 图表Js中的合并Jquery旋钮功能_Chart.js - Fatal编程技术网

Chart.js 图表Js中的合并Jquery旋钮功能

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

我正在使用ChartJS的甜甜圈图,下面是我的代码

<!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