jQuery 动画切换

标签 jquery jquery-animate toggle

这是一个非常简单的问题。我基本上在页面上有一个 div block ,当单击它时,它的大小会增加,当再次单击时又会恢复到原来的大小。我的问题是它似乎根本不起作用。另外,我确信有一种比这样的 if 语句更简洁的方法可以在两个动画状态之间切换,但我不确定具体如何执行此操作。

$(document).ready(function(){
    var toggle = 0;
    $(".login").click(function(){
        if($toggle == 0){
            $(this).animate({
                height: '200',
            }, 500, function(){
            });
            $toggle = 1;
        }
        else if($toggle == 1){
            $(this).animate({
                height: '100',
            }, 500, function(){
            });
            $toggle = 0;
        }
    });
});

对应的html代码很简单

<div class="login">Click Me</div>

如果还需要什么,请告诉我。

最佳答案

您的代码不起作用,因为您在一个位置使用了 toggle,而在另一位置使用了 $toggle

但是,这可以更简单地完成,如下所示:

$(document).ready(function(){
    $(".login").toggle(function() {
        $(this).animate({height: '200'});
    }, function() {
        $(this).animate({height: '100'});
    });​
});

这里的工作演示:http://jsfiddle.net/jfriend00/5Wu6m/

当给定函数列表作为参数时,.toggle(fn1, fn2) 方法将从第一个函数开始在给定的函数之间交替。这会自动为您跟踪切换状态 - 您不必这样做。

jQuery 文档是 here 。 .toggle() 有多种形式,具体取决于所使用的参数,因此在搜索 jQuery 文档时,您并不总能找到正确的形式。

关于jQuery 动画切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366601/

相关文章:

JQuery UI Datepicker newDate 减去 2 个月

jQuery 窗口滚动动画背景图像位置

jquery - 停止特定的 jQuery 动画

javascript - 如何保存更新应用于您的页面 html

javascript - 一个平滑褪色的 Logo 错误

jquery - 动画图像属性更改

javascript - 如何根据页面加载时的 anchor 标记在 div 之间切换?

jQuery 切换 [隐藏] 属性 Bootstrap 4

javascript - React.js 实现菜单 [突出显示事件链接]

javascript - 我可以使用 AJAX 'POST' 将数据发布到服务器上的 JSON 文件吗?