【问题标题】:jQuery .animate(), problems with togglejQuery .animate(),切换问题
【发布时间】:2011-09-06 21:27:25
【问题描述】:

我对 js 比较陌生,我正在尝试在我的投资组合中实现一个简单的 .animate() 功能。正如你所看到的here,我编写的名为ribbon 的div 的代码完美地向下滑动,但它似乎忽略了脚本的“else”部分。

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

对不起,我的英语不好,意大利人太糟糕了。

【问题讨论】:

    标签: jquery html jquery-animate slide


    【解决方案1】:

    刚刚在一分钟前为另一个这样的人想出了一个解决方案。

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

    【讨论】:

    • 效果很好,但我正在寻找我的代码中的错误,而不是整个脚本:D 无论如何谢谢!
    • @trascendency 对此感到抱歉。不过,这样做很有趣。 :)
    【解决方案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);
        }
     });
    });
    

    【讨论】:

    • 您可以在调用 animate() 之前添加一个 .stop() 方法。 $('#ribbon').stop().animate({...
    • 谢谢你,我知道我在做一些非常愚蠢的事情......那里快午夜了,困了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多