javascript中的数字动画不起作用?

时间:2018-01-16 07:43:25

标签: javascript jquery html

下面有两个函数 - myCalculator()函数用于保存具有静态值的变量,animateValue()函数将从 var start to end. (已定义 {{1 var 中的。) 但问题是价值不是动画

1st func

值未从第1个函数传递到第2个函数。 在此先感谢。

2 个答案:

答案 0 :(得分:1)

当您致电animateValue("value", start, end, 2000);时,startend都未定义。从myCalculator内部调用该函数,它们都被定义,而不是:

function myCalculator() {
    var start = 1; 
    var end = 100;
    animateValue("value", start, end, 2000);
}

您还需要在某处调用myCalculator();

答案 1 :(得分:1)

你可以试试这个,

var start, end;
function myCalculator() {
  start = 1; 
  end = 100;
}
function animateValue(id, start, end, duration) {
    var range = end - start;
    var current = start;
    var increment = end > start? 1 : -1;
    var stepTime = Math.abs(Math.floor(duration / range));
    var obj = document.getElementById(id);
    var timer = setInterval(function() {
        current += increment;
        obj.innerHTML = current;
        if (current == end) {
            clearInterval(timer);
        }
    }, stepTime);
}
// 2000 is 2 second
myCalculator();
animateValue("value", start, end, 2000);
<div id="value"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>