jQuery .animate(),切换问题

时间:2011-09-06 21:27:25

标签: jquery html jquery-animate slide

我对js比较新,我正在尝试在我的投资组合中实现一个简单的.animate()功能。正如你所看到的那样here,我写的代码就是带有完美滑动的div,但似乎忽略了脚本中的“else”部分。

我知道我可能犯了一个愚蠢的错误,但我现在似乎无法解决任何问题!

抱歉我的英语不好,很难成为意大利语。

2 个答案:

答案 0 :(得分: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;
    });
});

答案 1 :(得分:2)

只需拿走你所拥有的内容,只需将if放在click事件中。

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);
    }
 });
});