首页 > 编程笔记 > JavaScript笔记 > jQuery动画

jQuery show()和hide()方法

在 jQuery 中,如果想要实现元素的显示与隐藏效果,有以下两种方式:
本节教程先来介绍 show() 和 hide() 方法,toggle() 方法下节介绍。

在 jQuery 中,我们可以使用 show() 方法来显示元素,也可以使用 hide() 方法来隐藏元素。一般情况下,show() 和 hide() 这两个方法都是配合起来使用的。

语法:

$().show(speed, fn)
$().hide(speed, fn)

show() 方法会把元素由 display:none; 还原为原来的状态(display:block、display:inline-block 等)。hide() 方法会为元素定义 display:none;。

speed 是一个可选参数,表示动画的速度,单位为毫秒。如果省略参数,则表示没有动画效果。speed 有两种取值,一种是“字符串”,另一种是“数值”,如表 1 所示。

表 1:speed 取值为字符串及对应数值
字符串 数值
slow 200
normal 400(默认值)
fast 600

fn 也是一个可选参数,表示动画执行完成后的回调函数。在这里,所谓的回调函数,就是在动画执行完成后再执行的一个函数。

举例:无动画的 show() 和 hide()
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function () {
            $("#btn_hide").click(function(){
                $("img").hide();
            })
            $("#btn_show").click(function () {
                $("img").show();
            })
        })
    </script>
</head>
<body>
    <input id="btn_hide" type="button" value="隐藏" />
    <input id="btn_show" type="button" value="显示" /><br/>
    <img src="img/jquery.png" alt=""/>
</body>
</html>

默认情况下,预览效果如图 1(a)所示。当我们点击【隐藏】按钮之后,图片会消失,预览效果如图 1(b)所示。当我们点击【显示】按钮之后,图片又会重新显示出来。
无动画的show()和hide()方法的效果
图 1:无动画的 show() 和 hide() 方法的效果

在这个例子中,当我们点击【隐藏】按钮时,使用 hide() 方法隐藏图片;点击【显示】按钮时,使用 show() 方法显示图片。
$("#btn_hide").click(function () {
    $("img").hide();
});
$("#btn_show").click(function () {
    $("img").show();
});

上面代码其实等价于:
$("#btn_hide").click(function () {
    $("img").css("display" , "none");
});
$("#btn_show").click(function () {
    $("img"). css("display" , "block");
});

举例:带动画的 show() 和 hide()
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function () {
            $("#btn_hide").click(function(){
                $("img").hide("fast");
            })
            $("#btn_show").click(function () {
                $("img").show(500);
            })
        })
    </script>
</head>
<body>
    <input id="btn_hide" type="button" value="隐藏" />
    <input id="btn_show" type="button" value="显示" /><br/>
    <img src="img/jquery.png" alt="" />
</body>
</html>

默认情况下,预览效果如图 2(a)所示。当我们点击【隐藏】按钮之后,图片会消失,预览效果如图 2(b)所示。当我们点击【显示】按钮之后,图片又会重新显示出来。
带动画的show()和hide()方法的效果
图 2:带动画的 show() 和 hide() 方法的效果

这个例子相对于上一个例子来说,只是在 show() 和 hide() 中添加了一个速度参数,然后就让它们带上了动画效果,小伙伴们一定要在本地编辑器测试感受一下。

其中,参数 500 指的是 500ms,不需要带上单位。也就是说,show(500ms) 这种写法是错误的,正确写法应该是 show(500)。

所有教程

优秀文章