How to implement a live and persistent number counter on a site
所以我在看这个问题(^),我想做同样的事情,除了一点点不同。
我需要其中一个从麻木中获得每秒15.8美分$ 138,276,343
我希望逗号可以像正常金额一样。
我能用这种方式工作吗?我很难过。就像上面问题的海报一样,我没有太多的JS知识。
答案 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;
}