jQuery 学习02——效果:隐藏/显示、淡入淡出、滑动、动画、停止动画、Callback、链

时间:2021-06-19 07:03:50

jQuery 效果- 隐藏hide()和显示show()

语法:

$(selector).hide(speed,callback);
$(selector).show(speed,callback);
(可选)speed  参数:规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
(可选)callback 参数:是隐藏或显示完成后所执行的函数名称。
 
例1:使用 hide() 和 show() 方法来隐藏和显示 HTML 元素:
<script>
$(document).ready(function(){
$("#hide").click(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
});
</script> <body>
<p>如果你点击“隐藏” 按钮,我将会消失。</p>
<button id="hide">隐藏</button>
<button id="show">显示</button>
</body>

例2:演示带有 speed 参数的 hide()和show()方法:

<script>
$(document).ready(function(){
$("#hide").click(function(){
$("p").hide(1000);
});
$("#show").click(function(){
$("p").show(1000);
});
});
</script> <body>
<button id="hide">隐藏</button>
<button id="show">显示</button>
<p>这是个段落,内容比较少。</p>
<p>这是另外一个小段落</p>
</body>

toggle() 方法:来切换 hide() 和 show() 方法

例3:显示被隐藏的元素,并隐藏已显示的元素:

<script>
$(document).ready(function(){
$("button").click(function(){
$("p").toggle();
});
});
</script> <body>
<button>隐藏/显示</button>
<p>这是一个文本段落。</p>
<p>这是另外一个文本段落。</p>
</body>

jQuery 效果 - 淡入fadeIn() 淡出fadeOut()

(1) fadeIn()方法 :用于淡入已隐藏的元素

语法:$(selector).fadeIn(speed,callback);

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。.

(可选) callback 参数:是 fading 完成后所执行的函数名称。

例:带有不同参数的 fadeIn() 方法:

<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeIn(3000);
});
});
</script> <body>
<p>以下实例演示了 fadeIn() 使用了不同参数的效果。</p>
<button>点击淡入 div 元素。</button>
<br><br>
<div id="div1" style="width:80px;height:80px;display:none;background-color:red;"></div><br>
<div id="div2" style="width:80px;height:80px;display:none;background-color:green;"></div><br>
<div id="div3" style="width:80px;height:80px;display:none;background-color:blue;"></div>
</body>

(2)fadeOut() 方法:用于淡出可见元素

语法:$(selector).fadeOut(speed,callback);

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。.

(可选) callback 参数:是 fading 完成后所执行的函数名称。

例:带有不同参数的 fadeOut() 方法:

<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").fadeOut();
$("#div2").fadeOut("slow");
$("#div3").fadeOut(3000);
});
});
</script> <body>
<p>以下实例演示了 fadeOut() 使用了不同参数的效果。</p>
<button>点击淡出 div 元素。</button>
<br><br>
<div id="div1" style="width:80px;height:80px;background-color:red;"></div><br>
<div id="div2" style="width:80px;height:80px;background-color:green;"></div><br>
<div id="div3" style="width:80px;height:80px;background-color:blue;"></div>
</body>

(3) fadeToggle() 方法:可以在 fadeIn() 与 fadeOut() 方法之间进行切换

语法:$(selector).fadeToggle(speed,callback);

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。.

(可选) callback 参数:是 fading 完成后所执行的函数名称。

例:带有不同参数的 fadeToggle() 方法:

<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").fadeToggle();
$("#div2").fadeToggle("slow");
$("#div3").fadeToggle(3000);
});
});
</script> <body>
<p>实例演示了 fadeToggle() 使用了不同的 speed(速度) 参数。</p>
<button>点击淡入/淡出</button>
<br><br>
<div id="div1" style="width:80px;height:80px;background-color:red;"></div>
<br>
<div id="div2" style="width:80px;height:80px;background-color:green;"></div>
<br>
<div id="div3" style="width:80px;height:80px;background-color:blue;"></div>
</body>

(4)fadeTo() 方法:允许渐变为给定的不透明度(值介于 0 与 1 之间)

语法:$(selector).fadeTo(speed,opacity,callback);

(必需) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

(必需)opacity 参数:将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。

(可选) callback 参数:是该函数完成后所执行的函数名称。

例:带有不同参数的 fadeTo() 方法:

<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").fadeTo("slow",0.15);
$("#div2").fadeTo("slow",0.4);
$("#div3").fadeTo("slow",0.7);
});
});
</script> <body>
<p>演示 fadeTo() 使用不同参数</p>
<button>点我让颜色变淡</button>
<br><br>
<div id="div1" style="width:80px;height:80px;background-color:red;"></div><br>
<div id="div2" style="width:80px;height:80px;background-color:green;"></div><br>
<div id="div3" style="width:80px;height:80px;background-color:blue;"></div>
</body>

jQuery 效果 - slideDown() 向下 slideUp() 向上滑动

(1)slideDown() 方法:用于向下滑动元素。

语法:$(selector).slideDown(speed,callback);

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

(可选) callback 参数:是滑动完成后所执行的函数名称。

例:实现#panel元素向下滑动显示

<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideDown("slow");
});
});
</script> <style type="text/css">
#panel,#flip{padding:5px;text-align:center;background-color:#e5eecc;border:solid 1px #c3c3c3;}
#panel{padding:50px;display:none;}
</style> <body>
<div id="flip">点我滑下面板</div>
<div id="panel">Hello world!</div>
</body>

(2)slideUp() 方法:用于向上滑动元素

语法:$(selector).slideUp(speed,callback);

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

(可选) callback 参数:是滑动完成后所执行的函数名称。

例:实现#panel元素向上滑动隐藏

<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideUp("slow");
});
});
</script> <style type="text/css">
#panel,#flip{padding:5px;text-align:center;background-color:#e5eecc;border:solid 1px #c3c3c3;}
#panel{padding:50px;/*display:none;*/}
</style> <body>
<div id="flip">点我拉起面板</div>
<div id="panel">Hello world!</div>
</body>

(3)slideToggle() 方法:可以在 slideDown() 与 slideUp() 方法之间进行切换

语法:$(selector).slideToggle(speed,callback);

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

(可选) callback 参数:是滑动完成后所执行的函数名称。

例:实现#panel元素向上隐藏与向下滑动显示

<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideToggle("slow");
});
});
</script> <style type="text/css">
#panel,#flip{padding:5px;text-align:center;background-color:#e5eecc;border:solid 1px #c3c3c3;}
#panel{padding:50px;display:none;}
</style> <body>
<div id="flip">点我,显示或隐藏面板。</div>
<div id="panel">Hello world!</div>
</body>

jQuery 效果- 动画animate()

animate() 方法:用于创建自定义动画

语法:$(selector).animate({params},speed,callback);

(必需) params 参数:定义形成动画的 CSS 属性。

(可选) speed 参数:规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

(可选) callback 参数:是动画完成后所执行的函数名称。

例1:把 <div> 元素往右边移动了 250 像素

<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({left:'250px'});
});
});
</script> <body>
<button>开始动画</button>
<p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。
如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>

例2:生成动画的过程中可同时使用多个属性:

<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
$("div").css("background-color","#FF0000"); //改变背景颜色
});
});
</script> <body>
<button>开始动画</button>
<p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。
如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>

(3)可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=:

<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
});
</script> <body>
<button>开始动画</button>
<p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。
如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>

(4)把属性的动画值设置为 "show显示"、"hide隐藏" 或 "toggle"切换:

<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({
width:'toggle',
height:'toggle'
});
});
});
</script> <body>
<button>开始动画</button>
<p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。
如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;"></div>
</body>

(5)在彼此之后编写多个 animate() 调用,jQuery 会创建包含这些方法调用的"内部"队列。然后逐一运行这些 animate 调用。

<script>
$(document).ready(function(){
$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"slow");
div.animate({width:'300px',opacity:'0.8'},"slow");
div.animate({height:'100px',opacity:'0.4'},"slow");
div.animate({width:'100px',opacity:'0.8'},"slow");
});
});
</script> <body>
<button>开始动画</button>
<p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。
如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;"></div>
</body>

(6)把 <div> 元素往右边移动了 100 像素,然后增加文本的字号:

<script>
$(document).ready(function(){
$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
});
</script> <body>
<button>开始动画</button>
<p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。
如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>
</body>

jQuery 停止动画stop()

stop() 方法:用于停止动画或效果,在它们完成之前

语法:$(selector).stop(stopAll,goToEnd);

(可选) stopAll 参数:规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。

(可选)goToEnd 参数:规定是否立即完成当前动画。默认是 false。

(默认)stop(): 会清除在被选元素上指定的当前动画。

例:停止当前动画

<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideDown(5000);
});
$("#stop").click(function(){
$("#panel").stop();
});
});
</script> <style type="text/css">
#panel,#flip{padding:5px;text-align:center;background-color:#e5eecc;border:solid 1px #c3c3c3;}
#panel{padding:50px;display:none;}
</style> <body>
<button id="stop">停止滑动</button>
<div id="flip">点我向下滑动面板</div>
<div id="panel">Hello world!</div>
</body>

jQuery Callback 方法

Callback 函数:在当前动画 100% 完成之后执行

例1:使用“Callback ”在隐藏效果完全实现后回调函数:——当隐藏后,提示“段落现在被隐藏了”

<script>
$(document).ready(function(){
$("button").click(function(){
$("p").hide("slow",function(){
alert("段落现在被隐藏了");
});
});
});
</script> <body>
<button>隐藏</button>
<p>我们段落内容,点击“隐藏”按钮我就会消失</p>
</body>

例2:没有回调函数,警告框会在隐藏效果完成前弹出:——先提示“段落现在被隐藏了”,再隐藏

<script>
$(document).ready(function(){
$("button").click(function(){
$("p").hide(1000);
alert("现在段落被隐藏了");//没有回调函数
});
});
</script>
</head>
<body>
<button>隐藏</button>
<p>这是一个段落,内容很少</p>
</body>

jQuery - 链(Chaining)

Chaining :允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上)。

提示: 这样的话,浏览器就不必多次查找相同的元素。

如需链接一个动作,您只需简单地把该动作追加到之前的动作上。

例1:把 css()、slideUp() 和 slideDown() 链接在一起。"p1" 元素首先会变为红色,然后向上滑动,再然后向下滑动:

<script>
$(document).ready(function()
{
$("button").click(function(){
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
});
});
</script> <body><p id="p1">文字说明!!</p><button>点我</button></body>

如果需要,我们也可以添加多个方法调用。

书写也可以很好地运行:——方便修改

<script>
$(document).ready(function()
{
$("button").click(function(){
$("#p1").css("color","red")
.slideUp(2000)
.slideDown(2000);
});
});
</script> <body><p id="p1">文字说明!!</p> <button>点我</button> </body>