Javascript 如何停止和重置对象中的几个动画元素?(几个单独的动画)

Javascript 如何停止和重置对象中的几个动画元素?(几个单独的动画),javascript,jquery,object,animation,slideshow,Javascript,Jquery,Object,Animation,Slideshow,我已经创建了一些动画,每个动画都应该是主站点滑块上的单独幻灯片。 这就是为什么,我的老板给了我一个对象结构(代码如下),他说我应该用它来制作动画 var RDAnimation = function(o){ var f = $.extend({ start: function() { return true; }, pause: function() { return true; }, reset: function() {

我已经创建了一些动画,每个动画都应该是主站点滑块上的单独幻灯片。
这就是为什么,我的老板给了我一个对象结构(代码如下),他说我应该用它来制作动画

var RDAnimation = function(o){
var f = $.extend({
    start: function() {
        return true;
    },
    pause: function() {
        return true;
    },
    reset: function() {
        return true;
    },
    stop: function() {
        if (this.pause()) {
            return this.reset();
        }
    },
    vars: {}
},o);
this.start = f.start;
this.pause = f.pause;
this.reset = f.reset;
this.stop = f.stop;
this.vars=f.vars;
};
但因为我对处理对象没有太多经验,所以我只是将所有动画功能粘贴到“开始”中,看看会发生什么(下面的代码)

它正在工作!当我运行
anim3.start
时,动画将启动。但是现在。。我怎样才能阻止它?因为当用户选择另一张动画幻灯片时,我必须停止它,当用户再次选择此幻灯片时,我必须从头开始

我写了一个简单的代码,只是为了测试。。但它不起作用。 在上面的代码中,我编写了
$('.chart bar').stop()在暂停中,检查这是否会停止至少一个图表栏动画,但它不会。
在重置中,我写了
$this.count=0
重置.badge元素上的数字-但它不起作用

显然,为了运行这些代码行,我在脚本的底部放了一个简单的代码(下面的代码)

如您所见,我甚至运行了
anim3.pause()在我启动它后,立即检查它是否会立即停止,但即使是一个图表栏也没有停止

那么现在,谁能告诉我,我该如何停止(并重置)这些动画元素?我只需要得到一个工作的例子和休息,我可以自己做

如果有任何帮助,我将不胜感激


干杯

好的,我找到了解决办法

第一个修改bar()函数(addif语句)

然后我只需要在暂停方法中添加这两行代码:

   pause: function() {
       var $this = this;
       $('#animation-3').find('*').stop(true, false);
       $this.loop = false;
   }

感谢大家抽出时间:)

如果您找到了解决方案,最好将其作为答案发布:)
$('#slider-2, #slider-3').hide();
$('.tour-slider').on('click', 'li a', function(e){
    e.preventDefault();
    $(this).closest('.slider').hide();
    var sliderHref = $(this).attr('href');
    $(sliderHref).fadeIn();
    if(sliderHref == '#slider-1'){
        anim1.start();
        anim3.pause();

    }else if(sliderHref == '#slider-2'){
        anim2.start();  
        anim3.pause();
    }else if(sliderHref == '#slider-3'){
        anim3.reset();
        anim3.start();   
        anim3.pause();
    }
});
        function bars() {

        var barHeight = 0;
        var loop = true;

        $('.chart-bar').each(function () {

            barHeight = Math.floor(Math.random() * 100);

            $(this).delay(1000).animate({
                'height': barHeight + '%',
                'min-height': '20px'},
                700, function(){

            if (loop) {
                bars();   
            }

             });
        });

    }
   pause: function() {
       var $this = this;
       $('#animation-3').find('*').stop(true, false);
       $this.loop = false;
   }