在jQuery中,如果想要实现元素的显示与隐藏,有以下2种方式。
- (1)show()和hide()
- (2)toggle()
一、show()和hide()
在jQuery中,我们可以使用show()方法来显示元素,也可以使用hide()方法来隐藏元素。一般情况下,show()和hide()这两个方法都是配合一起使用的。
语法:
$().show(speed, fn) $().hide(speed, fn)
说明:
show()方法会把元素由display: none;还原为原来的状态(display:block、display:inline-block等)。
hide()方法会为元素定义display:none;。
speed是一个可选参数,表示动画的速度,单位为毫秒。如果省略,则表示没有动画效果。speed有两种取值:一种是“字符串”;另外一种是“数值”,如下表所示。
取值 | 说明 |
---|---|
"fast" |
200毫秒 |
"normal" |
400毫秒(默认值) |
"slow" |
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>
浏览器预览效果如下图所示。
分析:
在这个例子中,当我们点击【隐藏】按钮时,使用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>
浏览器预览效果如下图所示。
分析:
这个例子相对上一个例子来说,只是在show()和hide()中添加了一个速度参数,然后就带上了动画效果,小伙伴们一定要在本地编辑器测试感受一下。
其中,参数500指的是500毫秒,不需要带上单位。也就是说,show(500ms)这种写法是错误的,正确写法应该是show(500)。
二、toggle()
在jQuery中,我们还可以使用toggle()方法来“切换”元素的显示状态。也就是说,如果元素是显示状态,则会隐藏起来;如果元素是隐藏状态,则会显示出来。
语法:
$().toggle(speed, fn)
说明:
speed是一个可选参数,表示动画的速度,单位为毫秒。如果省略,则表示没有动画效果。speed有两种取值:一种是“字符串”;另外一种是“数值”,如下表所示。
取值 | 说明 |
---|---|
"fast" |
200毫秒 |
"normal" |
400毫秒(默认值) |
"slow" |
600毫秒 |
fn也是一个可选参数,表示动画执行完成后的回调函数。
此外要说明一点:toggle()方法在jQuery 3.x版本中已经被移除了。当然,如果使用jQuery 1.x版本则不用在意这个。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
$("#btn").click(function(){
$("img").toggle(500);
})
})
</script>
</head>
<body>
<input id="btn" type="button" value="切换" /><br/>
<img src="img/jquery.png" alt="" />
</body>
</html>
浏览器预览效果如下图所示。
分析:
从这个例子可以看出,使用toggle()方法来切换元素的显示状态,比show()和hide()这两个方法更加简单方便。