Jquery 切换动画?

Jquery 切换动画?,jquery,jquery-animate,Jquery,Jquery Animate,我有以下代码: $('.couch-hide').click(function() { $(this).animate({right:0},1000, 'easeOutBounce'); }); 我试图让它切换,所以在第一次点击,弹出它,然后再次点击,并把它放回里面。我需要设置一个变量作为跟踪器吗?要知道它处于哪个阶段?只需将原始值保存在某个位置,并记住在开始新动画之前停止任何正在进行的动画。动画例程将处理其余部分: var panel = $('.couch-h

我有以下代码:

$('.couch-hide').click(function() {
    $(this).animate({right:0},1000, 'easeOutBounce');           
});

我试图让它切换,所以在第一次点击,弹出它,然后再次点击,并把它放回里面。我需要设置一个变量作为跟踪器吗?要知道它处于哪个阶段?

只需将原始值保存在某个位置,并记住在开始新动画之前停止任何正在进行的动画。动画例程将处理其余部分:

var panel = $('.couch-hide');
var originalPos = panel.css("right");
panel.toggle(function() {
    $(this).stop().animate({right:0},1000, 'easeOutBounce');
  },
  function() {
    $(this).stop().animate({right:originalPos},1000, 'easeOutBounce');
  });

一般来说,jquerytoggle的工作方式非常标准,如下所示,但我还没有真正尝试过动画,但这可能会奏效

$('.couch-hide').click(function() {
    $(this).animate({right:0},1000, 'easeOutBounce').toggle();                       
});

我不知道开关可以像那样工作在任何东西上。我会记住这一点。这很方便。谢谢你。为什么有stop()在那里?@couglin:stop()的调用在那里,只要确保我不会意外地同时运行两个冲突的动画(比如,因为你双击了面板)。