2012-10-03 70 views
1

我寫了一個jquery函數,從那裏我嘗試使用動畫函數切換不透明度,但我的代碼不工作。誰能告訴我哪裏是故障。感謝jQuery使用動畫功能切換不透明度

  jQuery.fn.blindToggle = function (speed, easing, callback) { 
      var _opacity = 0; 
      var h = this.height() + parseInt(this.css('paddingTop')) + parseInt(this.css('paddingBottom')); 
      $(this).toggle(function() { 
       _opacity = 0; 
      }, 
      function() { 

       _opacity = 1; 
      }); 
      alert(_opacity); 
      return this.animate({ opacity: _opacity, 
       marginTop: parseInt(this.css('marginTop')) < 0 ? 0 : -h 
      }, speed, easing, callback); 
     }; 
+1

使用CSS添加樣式和使用toggleClass代替。 –

+0

什麼不工作?對我來說這似乎很好 – billyonecan

+0

我警覺不透明,它總是說0不是1. – Thomas

回答

6

jQuery's animate有你想要做一個快捷方式:

$(this).animate({"opacity": "toggle"}); 

那麼你並不需要自己實現這個邏輯。

+0

這是一個可愛的小動作! +1 – billyonecan

1

toggle僅適用於元素的屬性,而不是VAR值。這種情況下你可以簡單地做到以下幾點。

_opacity = _opacity == 0 ? 1 : 0;

演示