canvas-仪表:2 个仪表,一个增加值,另一个减少值

canvas-gauges: 2 gauges, one increasing values and another one decreasing values

我正在使用来自这里 canvas-gauges.com 的 Canvas-仪表。我想显示 2 个仪表。第一个 (gauge1) 具有递减值(从 100 到 0),第二个 (gauge2) 具有递增值(从 0 到 100)。 我的问题是两个仪表呈现相同(减少或增加)。我怎样才能为每个仪表分离和附加不同的值?

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>έκδοση_4</title>
    <script src="//cdn.rawgit.com/Mikhus/canvas-gauges/gh-pages/download/2.1.7/all/gauge.min.js"></script>
    </head>
<style type="text/css">
canvas {
    border:1px solid red;
    background: blue;
    }
    body {
        margin: 0;
    }
</style>
</head>
<body>
    <body onload='animateGauges()'>
<button onclick="stopGaugesAnimation()">stop counting</button>


<hr>
<canvas id="gauge1" data-type="linear-gauge"></canvas>
<script>
if (!Array.prototype.forEach) {
    Array.prototype.forEach = function(cb) {
        var i = 0, s = this.length;
        for (; i < s; i++) {
            cb && cb(this[i], i, this);
        }
    }
}

document.fonts && document.fonts.forEach(function(font) {
    font.loaded.then(function() {
        if (font.family.match(/Led/)) {
            document.gauges.forEach(function(gauge) {
                gauge.update();
            });
        }
    });
});

var timers = [];
var value=100;
var increment=5;
function animateGauges() {
    document.gauges.forEach(function(gauge) {
        timers.push(setInterval(function() {
            gauge.value =( value -= increment);
            if (value <10) { stopGaugesAnimation();
                }}, gauge.animation.duration + 50));

    });
}

function stopGaugesAnimation() {
    timers.forEach(function(timer) {
        clearInterval(timer);
    });
}
</script>
<canvas id="gauge2" data-type="radial-gauge"></canvas>
<script>
if (!Array.prototype.forEach) {
    Array.prototype.forEach = function(cb) {
        var i = 0, s = this.length;
        for (; i < s; i++) {
            cb && cb(this[i], i, this);
        }
    }
}

document.fonts && document.fonts.forEach(function(font) {
    font.loaded.then(function() {
        if (font.family.match(/Led/)) {
            document.gauges.forEach(function(gauge) {
                gauge.update();
            });
        }
    });
});

var timers = [];
var value2=10;
var increment2=7;
function animateGauges() {
    document.gauges.forEach(function(gauge) {
        timers.push(setInterval(function() {
            gauge.value =( value2 += increment2);
            if (value2 >93) { stopGaugesAnimation();
                }}, gauge.animation.duration + 50));

    });
}

function stopGaugesAnimation() {
    timers.forEach(function(timer) {
        clearInterval(timer);
    });
}
</script>
</body>
</html>

您还没有使用任何配置选项:
https://canvas-gauges.com/documentation/user-guide/configuration
您应该开始阅读该文档,并熟悉可用的选项

现在回答你的问题。如果我理解正确的话,你正试图减少一个并增加另一个。我的方法是在仪表上设置一些独特的东西,我们可以用它来识别和确定我们是否应该增加或减少。

在这个例子中,我使用了标距宽度,如果它是 200,我们减少 3,如果不是,我们增加 5。

var timers = []

function animateGauges() {
  document.gauges.forEach(function(gauge) {
    timers.push(setInterval(function() {      
      if (gauge.options.width == 200) {
        gauge.value -= 3
      } else {
        gauge.value += 5
      }
      
      if (gauge.value > 93) {
        timers.forEach(clearInterval)
      }
    }, gauge.animation.duration + 50))
  });
}
<script src="//cdn.rawgit.com/Mikhus/canvas-gauges/gh-pages/download/2.1.7/all/gauge.min.js"></script>

<body onload='animateGauges()'>
  <canvas id="gauge2" data-type="radial-gauge" data-width="200" data-value="80"></canvas>
  <canvas id="gauge1" data-type="linear-gauge" data-width="100" ></canvas>
</body>