2017-04-19 63 views
-5

我试过了一切,我可以在网上找到关于这个,但他们似乎都处理静态数字,而不是动画数字。给动画计数功能添加逗号

是否可以通过修改此函数使用此数字来增加逗号以添加到我的值中?

$('.counter').each(function() { 
     var $this = $(this), 
      countTo = $this.attr('data-count'); 

     $({ countNum: $this.text()}).animate({ 
      countNum: countTo 
     }, 

     { 

     duration: 500, 
     easing:'linear', 
     step: function() { 
      $this.text(Math.floor(this.countNum)); 
     }, 
     complete: function() { 
      $this.text(this.countNum); 
       //alert('finished'); 
     } 

    }); 
+0

解禁以及你们希望是有趣的男人和语法纳粹今天。你可以读JavaScript吗?如果你不明白,这个脚本动画从0到html数据属性中定义的数字计数,那么你可能无法回答我的问题开始。 – JSum

+1

@JSum,为语法和清晰度编辑其他用户的问题是SO工作原理的一部分。对此不屑一顾是一种很好的方式,不会让你的问题得到解答(如果我在回答之前看到了你的评论,我就不会花时间去帮助你。) –

+0

我已经问过很多这里和这个问题是我第一次因意外语法错误而被投票否决。你回答,它的工作,对我来说足够好。 – JSum

回答

2

只要在您当前正在设置元素text()的位置添加逗号即可。

逗号代码add commas to a number in jQuery

$('.counter').each(function() { 
 
    var $this = $(this), 
 
    countTo = $this.attr('data-count'); 
 

 
    $({ 
 
    countNum: $this.text() 
 
    }).animate({ 
 
     countNum: countTo 
 
    }, 
 

 
    { 
 
     duration: 5000, 
 
     easing: 'linear', 
 
     step: function() { 
 
     $this.text(commaSeparateNumber(Math.floor(this.countNum))); 
 
     }, 
 
     complete: function() { 
 
     $this.text(commaSeparateNumber(this.countNum)); 
 
     //alert('finished'); 
 
     } 
 
    } 
 
); 
 

 
}); 
 

 
function commaSeparateNumber(val) { 
 
    while (/(\d+)(\d{3})/.test(val.toString())) { 
 
    val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2'); 
 
    } 
 
    return val; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<span class="counter" data-count="1000000"></span>