逐渐而不是立即改变数字

时间:2014-01-07 06:58:05

标签: javascript timer jscript

我想逐渐将数字从n1改为n2,即如果n1为5& n2是10然后我希望它改变为6,7,8,9,10而不是突然从5变为10

这是部分;

var interval = setInterval(gMoneyU1, 1000);
function gMoneyU1()
{
    var calc = 5 * U1Amount;
    Money += calc;
    document.getElementById('money').innerHTML=Money + "$";
}

3 个答案:

答案 0 :(得分:1)

我认为您应该使用setTimeout来实现这一点,我正在编写更通用的代码,但您可以轻松地将其与您的案例相匹配

var initial = 0;
var final = 5;

function change(current, expected){
    if(current != expected){
        setTimeout(function(){
            current += ((expected-current > 0) ? 1 : -1)); //increment or decrement based on the case
            change(current, expected);
        }, 1000);
    }
}

change(0, 5);

答案 1 :(得分:0)

你有:

var interval = setInterval(gMoneyU1, 1000);
var Money = 0, U1Amount = 1;  //Start U1Amount in 1
function gMoneyU1()
{
    var calc = 5 * U1Amount;
    Money += calc;
    U1Amount++;  //Increment amount by 1
    document.getElementById('money').innerHTML=Money + "$";
}

干杯

答案 2 :(得分:0)

以下是我对这个问题的理解:

var money = 5,
    ceiling = 10,
    el = document.getElementById('money'),
    tid = setInterval(update, 500);

function update() {
    refresh(++money);
    if (money === ceiling) clearInterval(tid);
}

function refresh(value) {
    el.innerHTML = value + '$';
}

refresh(money);

看看演示:http://jsfiddle.net/wared/4DmxG/