我正在尝试在页面上的元素内增加一个数字。但是我需要用数字来包含第千个值的逗号。 (例如45,000而不是45000)
<script>
// Animate the element's value from x to y:
$({someValue: 40000}).animate({someValue: 45000}, {
duration: 3000,
easing:'swing', // can be anything
step: function() { // called on every step
// Update the element's text with rounded-up value:
$('#el').text(Math.round(this.someValue));
}
});
</script>
<div id="el"></div>
如何使用带逗号的动画来增加数字?
答案 0 :(得分:40)
工作演示 http://jsfiddle.net/4v2wK/
根据您的需要随意更改它,您还可以查看货币格式化程序,希望这符合您的需求:)
<强>代码强>
// Animate the element's value from x to y:
var $el = $("#el"); //[make sure this is a unique variable name]
$({someValue: 40000}).animate({someValue: 45000}, {
duration: 3000,
easing:'swing', // can be anything
step: function() { // called on every step
// Update the element's text with rounded-up value:
$el.text(commaSeparateNumber(Math.round(this.someValue)));
}
});
function commaSeparateNumber(val){
while (/(\d+)(\d{3})/.test(val.toString())){
val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
return val;
}
** *输出
答案 1 :(得分:10)
您还应该添加一个完整的功能:
step:function(){
//..
},
complete:function(){
$el.text(commaSeparateNumber(Math.round(this.someValue)));
}
更新小提琴:Demo