如何停止关于函数的jQuery动画

时间:2012-10-30 19:18:48

标签: jquery animation

我有一个增加数字的功能,停在56,941。我还有一个div容器,动画到不同的宽度大小。

我希望div容器在函数停止后停止动画。这是我的代码:

/****COUNTER****/

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(56100,56941);




    /****COMMA***/

    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;
    }


    /****BAR****/



    $('.bar').animate({width: "21%",},5000);    

这可能吗?谢谢!

2 个答案:

答案 0 :(得分:1)

把它放在适当的地方,我会在你清除间隔循环后说...

...
clearInterval(counter);
// stop the animation here...
$('.bar').stop();
...

调用.stop()将停止选择器上的所有动画。

答案 1 :(得分:1)

只需使用stop()函数 - http://api.jquery.com/stop/ - 过早结束jQuery动画函数,在您的情况下将是:

$('.bar').stop();