返回值:jQueryhide()
隐藏匹配的元素。
-
1.0 新增hide()
-
1.0 新增hide(duration, [callback])
duration (String,Number) 字符串("slow"或 "fast")或表示动画时长的毫秒数值callback (Callback) 可选参数,在动画完成时执行的函数。 -
1.4.3 新增hide([duration], [easing], [callback])
duration (String,Number) 可选参数,字符串("slow"或 "fast")或表示动画时长的毫秒数值easing (String) 可选参数,要使用的缓冲效果的名称,默认值是 "swing"。jQuery 内置提供 "linear" 和 "swing" 两种效果,如果要使用更多缓冲效果,需要插件支持。callback (Callback) 可选参数,在动画完成时执行的函数。
隐藏元素的最简单方式就是不带参数的 .hide()
方法:
$('.target').hide();
此时元素会立即隐藏起来,不带有任何动画。这基本等价于 .css('display', 'none')
,只不过此时 display
属性值会保存到 jQuery 的数据缓存中,之后还能恢复 display
的初始值。比如,如果一个元素的 display
值为 inline
,那么当隐藏再显示时,他仍然是 inline
。
如果提供 duration 参数,.hide()
就变成一个动画方法了。.hide()
会同时对元素的高、宽以及透明度进行动画操作。当这些属性值变成 0 之后,再把 display
样式属性设置成 none
以确保这个元素不再对页面布局产生影响。
duration 参数可以提供一个毫秒数,代表动画运行的时间,时间越长动画越慢。还可以提供字符串 'fast'
和 'slow'
,分别对应了 200
和 600
毫秒。如果没有设置 duration
参数,或者设置成其他无法识别的字符串,就会使用默认值 400 毫秒。
从 jQuery 1.4.3 起,增加了一个可选的参数,用于确定使用的缓冲函数。缓冲函数确定了动画在不同的位置的速度。jQuery默认只提供两个缓冲效果:swing
和 linear
。更多特效需要使用插件。可以访问 jQuery UI 网站 来获得更多信息。
如果提供了回调函数,那么当动画结束时,会调用这个函数。通常用来几个不同的动画依次完成。这个函数不接受任何参数,但是 this
会设成将要执行动画的那个元素。如果对多个元素设置动画,那么要非常注意,回调函数会在每一个动画完成的元素上都执行一次,而不是对这组动画整体才执行一次。
比如下面这个页面:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" />
元素一开始显现的,我们可以让他缓慢的隐藏起来:
$('#clickme').click(function() { $('#book').hide('slow', function() { alert('Animation complete.'); }); });
示例:
点击链接后隐藏所有段落。
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"></script>
</head>
<body>
<p>Hello</p>
<a href="#">Click to hide me too</a>
<p>Here is another paragraph</p>
<script>
$("p").hide();
$("a").click(function () {
$(this).hide();
return true;
});
</script>
</body>
</html>
演示:
示例:
把所有段落缓慢的隐藏起来,用时 600 毫秒。
<!DOCTYPE html>
<html>
<head>
<style>
p { background:#dad; font-weight:bold; }
</style>
<script src="jquery.min.js"></script>
</head>
<body>
<button>Hide 'em</button>
<p>Hiya</p>
<p>Such interesting text, eh?</p>
<script>
$("button").click(function () {
$("p").hide("slow");
});
</script>
</body>
</html>
演示:
示例:
快速隐藏所有的 span 元素,用时 200 毫秒。一个结束后立即开始下一个。
<!DOCTYPE html>
<html>
<head>
<style>
span { background:#def3ca; padding:3px; float:left; }
</style>
<script src="jquery.min.js"></script>
</head>
<body>
<button id="hidr">Hide</button>
<button id="showr">Show</button>
<div>
<span>Once</span> <span>upon</span> <span>a</span>
<span>time</span> <span>there</span> <span>were</span>
<span>three</span> <span>programmers...</span>
</div>
<script>
$("#hidr").click(function () {
$("span:last-child").hide("fast", function () {
// use callee so don't have to name the function
$(this).prev().hide("fast", arguments.callee);
});
});
$("#showr").click(function () {
$("span").show(2000);
});
</script>
</body>
</html>
演示:
示例:
当点击 div 之后用 2 秒时间隐藏这个 div。当完全隐藏后从文档中移除。试试一次多点几个 div 看看。
<!DOCTYPE html>
<html>
<head>
<style>
div { background:#ece023; width:30px;
height:40px; margin:2px; float:left; }
</style>
<script src="jquery.min.js"></script>
</head>
<body>
<div></div>
<script>
for (var i = 0; i < 5; i++) {
$("<div>").appendTo(document.body);
}
$("div").click(function () {
$(this).hide(2000, function () {
$(this).remove();
});
});
</script>
</body>
</html>