2013-02-12 186 views
0

我有一个点击切换动画的问题 - 就像当你点击一次并且一个元素向下移动并且在第二次点击该元素时向后移动。我试图.toggle,但没有成功,并配备了这样的想法:jquery:第二次点击

我有一个移动的“旋转木马”(这是一个按钮)跌功能10px的[我使用过境插件]:

function carousel_4way (n, el) { 

    // remove outline from clicked element 
    el.blur(); 

    // animation 
    var carousel = '#carousel-4way-nav-' + n 
    var carousel_content = '#carousel-4way-' + n 
     $(carousel_reset).hide(); 
     $(carousel).transition(
     {y: '+=10'} 

     ); 

然后我有这些传送带之一的点击:

$('#carousel-4way-nav-1').click(function(event){ 
    return carousel_4way(1, this); 
    event.preventDefault(); 
}); 

它计算非常漂亮,我只需要定义每个按钮我想动画的所有点击。

这样我动画的按钮移动10px向下{y:'+ = 10'} 但我想再次点击它们向上移动,所以{y:' - = 10'}是我所需要的。

我是混合是这样的:

function carousel_4way (n, el, m) { 
$(carousel).transition(
    {y: m + '=10'} 
    ); 


$('#carousel-4way-nav-1').click(function(event){ 
return carousel_4way(1, this, '+'); 
event.preventDefault(); 
}); 

现在我只需要添加到另一个 回报carousel_4way(1,这个 ' - '); 这是我卡住的地方。可能吗?

回答

0

你的意思是这样的:

var transitionState = '-'; // this should be global 

// the following will always evaluate to what transitionState currently is not (toggle) 
return carousel_4way(1, this, (transitionState == '-') ? '+' : '-'); 

只要确保在carousel_4way更新transitionState

+0

太棒了,谢谢! 变种的更新是有点棘手,因为我是个新手,但我成功地做到这一点是这样的:如果 (transitionState ==“ - ”) \t \t \t { \t \t \t transitionState =“+”; \t \t \t} \t \t \t别的 \t \t \t { \t \t \t transitionState = ' - '; \t \t \t} 有没有办法很好地做到这一点,就像你在一行中做的一样? – dyb 2013-02-12 12:42:58

+0

我的荣幸。 :) – 2013-02-12 12:44:05

+0

好的,现在我必须将这个应用到4个按钮,他们需要一个不同的过渡状态,所以我可以分别跟踪每个按钮...我会更新这个问题与我的进展...或更多的问题。 – dyb 2013-02-12 12:49:58