下面有两个函数 - myCalculator()函数用于保存具有静态值的变量,animateValue()函数将从 var start to end.
(已定义 {{1 var
中的。)
但问题是价值不是动画
1st func
值未从第1个函数传递到第2个函数。 在此先感谢。
答案 0 :(得分:1)
当您致电animateValue("value", start, end, 2000);
时,start
和end
都未定义。从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>