Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Javascript 用海图计数器_Javascript_Jquery_Highcharts_Counter - Fatal编程技术网

Javascript 用海图计数器

Javascript 用海图计数器,javascript,jquery,highcharts,counter,Javascript,Jquery,Highcharts,Counter,我正在做一个定制的线性仪表图表 也许这要求太高了,但它会使图表完整。再次感谢您的努力,我非常感谢Highcharts不会为文本内容设置动画,只会立即更改内容。我建议在图表顶部创建溢出元素,并在其内部添加计数器插件,然后只设置元素左侧位置的动画 大概是这样的: HTML: JS: 根据您的意见,您可以使用clearInterval删除第4.1点之后的设置间隔 function (chart) { var myInterval= setInterval(function () { i+

我正在做一个定制的线性仪表图表


也许这要求太高了,但它会使图表完整。再次感谢您的努力,我非常感谢Highcharts不会为文本内容设置动画,只会立即更改内容。我建议在图表顶部创建溢出元素,并在其内部添加计数器插件,然后只设置元素左侧位置的动画

大概是这样的:

HTML:

JS:

根据您的意见,您可以使用clearInterval删除第4.1点之后的设置间隔

function (chart) {
   var myInterval= setInterval(function () {
    i+=0.1;
        Highcharts.each(chart.series, function (serie) {
            var point = serie.points[0];

            if (i > 4.1) {
            clearInterval(myInterval);
                //i=-1.9
            }
            point.update(i);
        });
    }, 500);

}
演示

$function{ /** *Highcharts线性仪表系列插件 */ 函数{ var defaultPlotOptions=H.getOptions.plotOptions, columnType=H.seriesTypes.column, wrap=H.wrap, each=H.each; defaultPlotOptions.lineargauge=H.mergedefaultPlotOptions.column,{}; H.seriesTypes.lineargauge=H.extendClasscolumnType{ 键入:“lineargauge”, //倒:是的, setVisible:函数{ columnType.prototype.setVisible.applythis,参数; 如果这是.markLine{ this.markLine[this.visible?'show':'hide']; } }, 支点:功能{ //像往常一样画柱子 columnType.prototype.drawPoints.applythis,参数; //添加标记 var系列=此, chart=this.chart, 倒转的,倒转的, xAxis=this.xAxis, yAxis=this.yAxis, point=this.points[0],//我们知道只有一个点 markLine=this.markLine, ani=标记行?'animate':'attr'; //隐藏列 point.graphic.hide; 如果!标记线{ var path=inversed?['M',0,0,'L',10,-10,'L',0,0,'L',0+xAxis.len]:['M',0,0,'L',10,-10,'L',0,0,'L',xAxis.len,0]; markLine=this.markLine=chart.renderer.pathpath 艾特先生{ 填充:series.color, 笔划:series.color, “笔划宽度”:2 }.添加; } 标记线[ani]{ translateX:inversed?xAxis.left+yAxis.translatepoint.y:xAxis.left, translateY:倒?xAxis.top:yAxis.top+yAxis.len-yAxis.translatepoint.y }; } }; }海图; VarI=-1.9; $'container'.highcharts{ 图表:{ 键入:“lineargauge”, 保证金:[100,20,40,20], 倒过来:是的 }, 学分:{ 已启用:false }, 出口:假, 标题:{ 正文:, 颜色:“C0C0” }, xAxis:{ 线条颜色:“C0”, 标签:{ 已启用:false }, 长度:0, }, 亚克斯:{ 最小值:-1.9, 最高:4.4, 位置:[-1.9,-0.1,1,1.5,4.4], 长度:1, 宽度:1, 勾选颜色:“C0C0”, gridLineColor:'C0C0', 网格线宽度:1, minorTickInterval:5, minorTickWidth:1, minorTickLength:5, minorGridLineWidth:0, 是的, 恩东蒂克:是的, 标题:空, 标签:{ 格式:“{value}%” }, 绘图带:[{ 从:-1.9, 至:-0.1, 颜色:“rgba229,27,27,1” }, { 从-0.1开始, 至:1.0, 颜色:“rgba250、121、33、1” }, { 从:1.0, 至:1.5, 颜色:“RGBA25323761” }, { 从:1.5, 致:4.4, 颜色:“RGBA155197161,1” } ] }, 图例:{ 已启用:false }, 系列:[{ 数据:[-1.9], 颜色:“000000”, 数据标签:{ 启用:对, 颜色:“000000”, 对齐:'居中', 格式:“{point.y:,.1f}%”, y:70, } }] },//增添一些活力 功能图{ var myInterval=setIntervalfunction{ i+=0.1; Highcharts.eachchart.series,functionserie{ var点=系列点[0]; 如果i>4.1{ 间隔时间; //i=-1.9 } point.updatei; }; }, 500; }; }; 容器{ 宽度:600px; 高度:200px; 保证金:1em自动; }
嗨,检查这个大于3seconds@Deep3015谢谢你的快速回复!是否可以修改代码以停止在4.1?是否可以加速指针?如果我将500更改为100,指针不等于上述值。我有大约10个图形,我想在同一时间可视化。有没有可能想出一个公式?再次感谢你的帮助!您可以通过更新动画:false check来加快指针速度
var options = {useEasing: true,useGrouping: true,separator: '.',decimal:',',};
var demo = new CountUp('myTargetElement', -1.9, 4.1, 1, 3, options);
if (!demo.error) {demo.start();} else {console.error(demo.error);}
<div id="counter-box">fly!</div>
#counter-box {
  position: absolute;
  z-index: 2;
  top: 80px;
  left: 110px;
}
$('#container').highcharts({
    chart: {
      type: 'lineargauge',
      events: {
        load: function() {
          this.counterBox = $("#counter-box");
          // Because chart is inverted, use plotWidth & plotY:
          this.counterBox.css({
            left: this.plotWidth - this.series[0].points[0].plotY + 'px'
          });
        },
        redraw: function() {
          this.counterBox.animate({
            left: this.plotWidth - this.series[0].points[0].plotY + 'px'
          });
        }
      },
      margin: [100, 20, 40, 20],
      inverted: true
    },
    ...
  });
function (chart) {
   var myInterval= setInterval(function () {
    i+=0.1;
        Highcharts.each(chart.series, function (serie) {
            var point = serie.points[0];

            if (i > 4.1) {
            clearInterval(myInterval);
                //i=-1.9
            }
            point.update(i);
        });
    }, 500);

}