1

ここで、ある合計から別の合計にアニメーション化するカウンターの多くのソリューションを見つけました。

これが私が今使っているものです:

jQuery.fn.extend({
          ts : function (from, to, time) {
            var steps = 1,
                self = this,
                counter;

            if (from - to > 0) {
              steps = -1;
            };

            from -= steps;

            function step() {
              self.text(from += steps);

              if ((steps < 0 && to >= from) || (steps > 0 && from >= to)) {
                clearInterval(counter);
              };
            };

            counter = setInterval(step, time || 5);
          }
        });


        var total = $('.total').ts(56000,56941);

それはうまくいきますが、56,941 のように、合計にコンマを追加したいと思います。これは可能ですか?

ありがとうございました!

4

4 に答える 4

1

ウェブ上のどこかから...

function formatComma(x){ 
    return (x+'').replace( /\B(?=(\d{3})+(?!\d))/g, ',');
}

ロジックを理解しやすいので、文字列を逆にする独自のソリューションが好きです...

function formatComma(x){
    // prepare the input as a string ready for manipulating and returning
    return (x+'')
      // reverse the string (by converting to array)
      .split("").reverse().join("")
      // replace 3 digits in a row, with themselves and a comma
      // so long as the digits are followed by a non-word boundary
      .replace(/(\d{3})\B/g,'$1,')
      // reverse it all again
      .split("").reverse().join("")
}
于 2012-10-30T00:30:32.097 に答える
1

私はこれがそれをするだろうと思います:

jQuery.fn.extend({
    ts: function(from, to, time) {
        var steps = 1, self = this, counter;

        if (from - to > 0) steps = -1;
        from -= steps;

        function step() {
            var x = (from += steps).toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
            self.text(x);
            if ((steps < 0 && to >= from) || (steps > 0 && from >= to)) {
                clearInterval(counter);
            };
        };
        counter = setInterval(step, time || 5);
    }
});

フィドル

于 2012-10-30T00:16:17.057 に答える
0

これは機能します。この関数は、http://ntt.cc/2008/04/25/6-very-basic-but-very-useful-javascript-number-format-functions-for-web-developers.htmlから取得されます。とても便利な

jQuery.fn.extend({
          ts : function (from, to, time) {
            var steps = 1,
                self = this,
                counter;

            if (from - to > 0) {
              steps = -1;
            };

            from -= steps;

            function step() {
              self.text(addCommas(from += steps));

              if ((steps < 0 && to >= from) || (steps > 0 && from >= to)) {
                clearInterval(counter);
              };
            };

            counter = setInterval(step, time || 5);
          }
        });


var total = $('.total').ts(56000,56941);


function addCommas(nStr)
{
  nStr += '';
  x = nStr.split('.');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
    x1 = x1.replace(rgx, '$1' + ',' + '$2');
  }
  return x1 + x2;
}

</ p>

于 2012-10-30T00:12:55.967 に答える
0

もちろんそうだ!このプラグイン ( http://code.google.com/p/jquery-numberformatter/ ) をチェックして、自分のものに実装できます:-)

于 2012-10-30T00:09:05.780 に答える