2011-09-06 55 views
0

問題我是比較新的JS和我想要實現我的投資組合的簡單.animate()功能。正如你所看到的here,我用代碼完美地寫出了名爲ribbon slide的div,但它似乎忽略了腳本的「else」部分。jQuery的.animate(),與切換

我知道我可能做一個愚蠢的錯誤,但我似乎無法能夠制定出任何此刻更好!

對不起我的英文不好,很爛是意大利語。

回答

2

只是把你有什麼,乾脆把ifclick事件中。

http://jsfiddle.net/Rkqge/12/

$(document).ready(function() { 
    $('#toggle').click(function() { 
    if ($('#ribbon').css("margin-top") == "-300px") { 
     $('#ribbon').animate({ 
      marginTop: "0px" 
     }, 1700); 
    } else { 
     $('#ribbon').animate({ 
      marginTop: "-300px" 
     }, 1700); 
    } 
}); 
}); 
+0

您可以添加的一件事是在您調用animate()之前的.stop()方法。 ''('#ribbon')。stop()。animate({...' –

+0

謝謝,我知道我在做一些非常愚蠢的事情......在那裏快半夜了,變得昏昏欲睡! – trascendency

3

只是想出了另一個像這樣在一分鐘前的解決方案。

http://jsfiddle.net/HF5A5/

基本上你由1或-1,然後乘以值切換該值。

$(document).ready(function() { 
    var direction = -1; 
    $('#toggle').click(function() { 
      direction -= direction * 2; 
      $('#ribbon').animate({ 
       marginTop: "+=" + direction * 300 + "px" 
      }, 1700); 
      return false; 
    }); 
}); 

或者更好的:http://jsfiddle.net/HF5A5/1/

$(document).ready(function() { 
    var direction = 1; 
    $('#toggle').click(function() { 
      $('#ribbon').animate({ 
       marginTop: "+=" + direction * 300 + "px" 
      }, 1700, function(){ 
       $(this).stop(); 
       direction -= direction * 2; 
      }); 
      return false; 
    }); 
}); 
+0

偉大的作品,但我在我的代碼尋找錯誤,而不是整個腳本:感謝反正d! – trascendency

+0

@trascendency大聲笑對不起。雖然很有趣。 :) –