2009-04-27 168 views
2

我有这样的代码:切换动画?

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

我试图得到它的切换,所以在第一次点击,弹出出来,然后再次单击,然后将其收回里面。我需要将变量设置为跟踪器吗?要说明它处于什么阶段?

回答

6

只需将原始值保存在某处,并记住在开始新动画前停止任何正在进行的动画。动画程序将负责其余的:

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'); 
    }); 
+0

+1好得多...... – 2009-04-27 19:32:46

0

一般jQuery的切换工作几乎在一个标准的方式如下,但是我还没有真正尝试过用动画的东西,但这个可能工作。

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