5

如何在站点上实现实时和持久的数字计数器

所以我在看这个问题(^),我想做同样的事情,只是有点不同。

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

最好我希望逗号像正常的美元金额一样。

有什么办法可以让这个工作吗?我难住了。和上面问题的发帖者一样,我对JS的了解不多。

4

1 回答 1

11

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

现场演示可以在这里找到:http: //jsfiddle.net/dm6LL/

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

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

您在上面的代码中看到的update()函数只是一个简单的更新程序,它引用一个带有amountid 的对象,将格式化的当前金额放入页面上的 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;
}​
于 2012-08-15T08:28:25.977 回答