2011-06-16 151 views
0

看看這個jsfiddle http://jsfiddle.net/Y7fEW/需要幫助jQuery動畫

我試圖讓左邊的棕褐色格,這樣當你點擊它,它滑出,當你再次點擊它,它滑入。

目前,當你點擊它,它滑出,但當你再次點擊它時,它會再次滑出。我在網上學習了一個教程,以瞭解這一點,但我無法弄清楚。

 $('#social').live('click', function() { 
      var $lefty = $(this); 
      $lefty.animate({ 
       marginLeft: parseInt($lefty.css('marginLeft'), 2) == 0 ? 
       $lefty.outerWidth() : 0 
      }); 
     }); 

回答

1

的問題是parseInt函數調用:

使用parseInt("...")代替parseInt("...", 2)

$lefty.animate({ 
    marginLeft: parseInt($lefty.css('marginLeft')) == 0 ? 
       (40 - $lefty.outerWidth()) : 0 
}); 

檢查:http://jsfiddle.net/roberkules/Y7fEW/6/

+0

試過了。沒有工作。 – Catfish 2011-06-16 02:43:01

+0

現在應該工作。 – roberkules 2011-06-16 02:49:28

+0

「parseInt」的第二個參數是數字應該表示的基數。如果未指定基數,JS將嘗試猜測數字所在的基數。如果數字格式化(例如'parseInt('012')'將計算爲10',但是'parseInt(' 012',10)'將評估爲'12')。指定基地總是一個好主意,一般來說基地將是'10',除非需要別的東西。所以最好使用'parseInt($ lefty.css('marginLeft'),10)'。 – eyelidlessness 2011-06-16 03:28:43

0

你可以使用從jQuery UI的滑動效果,只是說

$lefty.toggle('slide'); 
+0

我沒有意識到jquery ui具有的切換效果。謝謝你讓我意識到。 – Catfish 2011-06-16 03:11:21