2013-02-12 187 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