2011-09-06 54 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大声笑对不起。虽然很有趣。 :) –