JS计数器不断更新

时间:2012-08-15 07:30:54

标签: javascript counter continuous

How to implement a live and persistent number counter on a site

所以我在看这个问题(^),我想做同样的事情,除了一点点不同。

我需要其中一个从麻木中获得每秒15.8美分$ 138,276,343

我希望逗号可以像正常金额一样。

我能用这种方式工作吗?我很难过。就像上面问题的海报一样,我没有太多的JS知识。

1 个答案:

答案 0 :(得分:9)

我花了很长时间才回答,因为我必须创建自己的格式货币函数。

可以在此处找到实时演示:http://jsfiddle.net/dm6LL/

每秒的基本更新非常简单,将通过JavaScript的setInterval命令完成。

setInterval(function(){
    current += .158;
    update();
},1000);

您在上面的代码中看到的update()函数只是一个简单的更新程序,它引用一个带有amount id的对象,将格式化的当前数量放入页面的div中。

function update() {
    amount.innerText = formatMoney(current);
}

您在update()函数中看到的金额和当前是预定义的:

var amount = document.getElementById('amount');
var current = 138276343;

然后剩下的就是我的formatMoney()函数,它接受一个数字并将其转换为货币字符串。

function formatMoney(amount) {
    var dollars = Math.floor(amount).toString().split('');
    var cents = (Math.round((amount%1)*100)/100).toString().split('.')[1];
    if(typeof cents == 'undefined'){
        cents = '00';
    }else if(cents.length == 1){
        cents = cents + '0';
    }
    var str = '';
    for(i=dollars.length-1; i>=0; i--){
        str += dollars.splice(0,1);
        if(i%3 == 0 && i != 0) str += ',';
    }
    return '$' + str + '.' + cents;
}​