jQuery_02效果
2023-11-14 本文已影响0人
tzktzk1
jQuery 效果- 隐藏和显示
jQuery提供了一个简单的界面来执行各种令人惊奇的效果。
jQuery效果方法使我们能够以最少的配置快速实现常用的效果。
jQuery hide() 和 show()
您可以使用hide()和show()方法隐藏和显示HTML元素。
下面的示例演示了hide()方法和show()方法的用法:
<!DOCTYPE html>
<html>
<title>jQuery 效果- Hide 和Show显示隐藏示例 - 基础教程(nhooo.com)</title>
<head>
<style>
p {
padding: 15px;
background: #7F00FF;
color: white;
}
</style>
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
// 隐藏显示段落
$("#hide-btn").click(function(){
$("p").hide();
});
// 显示隐藏的段落
$("#show-btn").click(function(){
$("p").show();
});
});
</script>
</head>
<body>
<h2> jQuery隐藏和显示</h2>
<p>如果单击"隐藏"按钮,所有段落将消失。</p>
<p>然后,请点击"显示"按钮。</p>
<button id="hide-btn">隐藏</button>
<button id="show-btn">显示</button>
</body>
</html>
这是hide() 方法的语法:
$(selector).hide(duration, easing, callback);
这是show()方法的语法:
$(selector).show(duration, easing, callback);
hide()和show()方法接受三个可选参数:
duration -确定效果将持续多长时间。可能的值:“ slow”,“ fast”或毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定方法完成后要调用的函数
以下示例通过hide()和show()演示了duration参数:
示例
$("#hide-btn").click(function(){
$("p").hide(1000);
});
$("#show-btn").click(function(){
$("p").show(1000);
});
以下示例使用hide()和show()演示了回调参数:
示例
$("#hide-btn").click(function(){
$("div").hide(1000, function(){
alert("DIV被隐藏");
});
});
$("#show-btn").click(function(){
$("div").show(1000, function(){
alert("DIV被显示");
});
});
动画所有跨度(在本示例中为单词)快速隐藏,在200毫秒内完成每个动画:
示例
$("button").click(function(){
$("span:last-child").hide("fast", function(){
$(this).prev().hide("fast", arguments.callee);
});
});
jQuery toggle()方法
我们还可以使用toggle()方法在隐藏和显示HTML元素之间切换。
如果所选元素最初显示,它将被隐藏;如果隐藏,它将显示出来。
下面的示例在单击按钮时在hide和show所有<p>元素之间切换:
示例
$("button").click(function(){
$("p").toggle(1500);
});
toggle()方法的语法如下:
$(selector).toggle(duration, easing, callback);
toggle()方法接受三个可选参数:
duration -确定效果将持续多长时间。可能的值:“ slow”,“ fast”或 毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定方法完成后要调用的函数
jQuery 效果 - 淡入淡出
jQuery提供了一个简单的界面来执行各种令人惊奇的效果。
jQuery效果方法使我们能够以最少的配置快速应用常用的效果。
jQuery淡入淡出方法
使用jQuery,我们可以实现淡入或淡出效果。
我们有以下jQuery淡入淡出方法:
fadeIn()
fadeOut()
fadeToggle()
fadeTo()
jQuery fadeIn() 和 fadeOut()
jQuery fadeIn()方法逐渐将选定元素的不透明度从隐藏更改为可见。
jQuery fadeOut()方法逐渐将选定元素的不透明度从可见更改为隐藏。
以下示例演示了fadeIn()方法和fadeOut()方法的用法:
示例
// 淡出显示的段落
$("#fadeout-btn").click(function(){
$("p").fadeOut();
});
// 淡入隐藏的段落
$("#fadein-btn").click(function(){
$("p").fadeIn();
});
这是fadeIn()方法 的语法:
$(selector).fadeIn(duration, easing, callback);
这是fadeOut()方法 的语法:
$(selector).fadeOut(duration, easing, callback);
无论fadeIn()和fadeOut()方法接受三个可选参数:
duration -确定淡入淡出效果将持续多长时间。可能的值:“ slow”,“ fast”或毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定淡入淡出方法完成后要调用的函数
下面的示例演示了使用fadeIn()和fadeOut()的duration参数:
示例
$("#fadeout-btn").click(function(){
$("p").fadeOut(1500);
});
$("#fadein-btn").click(function(){
$("p").fadeIn(1500);
});
下面的示例演示了带有fadeIn()和fadeOut()的回调参数:
示例
$("#fadeout-btn").click(function(){
$("div").fadeOut(600, function(){
$("h3").text("淡出完成.");
});
});
$("#fadein-btn").click(function(){
$("div").fadeIn(600, function(){
$("h3").text("淡入完成.");
});
});
对所有跨度(在这种情况下为单词)进行动画处理以使其快速褪色,并在200毫秒内完成每个动画处理:
示例
<!DOCTYPE html>
<html>
<title>jQuery Effects - Fading示例 - 基础教程(nhooo.com)</title>
<head>
<style>
span {
background: #7F00FF;
color: white;
float: left;
padding: 10px 5px;
}
div {
margin-bottom: 15px;
}
.clearfix::after {
content: '';
clear: both;
display: table;
}
</style>
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#fadeout-btn").click(function(){
$("span:last-child").fadeOut("fast", function(){
$(this).prev().fadeOut("fast", arguments.callee);
});
});
$("#fadein-btn").click(function(){
$("span:first-child").fadeIn("fast", function(){
$(this).next().fadeIn("fast", arguments.callee);
});
});
});
</script>
</head>
<body>
<div class="clearfix">
<span>The</span> <span>purpose</span> <span>of</span>
<span>jQuery</span> <span>is</span> <span>to</span>
<span>make</span> <span>it</span> <span>much</span>
<span>easier</span> <span>to</span> <span>use</span>
<span>JavaScript</span> <span>on</span> <span>your</span>
<span>website.</span>
</div>
<button id="fadeout-btn">淡出</button>
<button id="fadein-btn">淡入</button>
</body>
</html>
jQuery fadeToggle()方法
我们还可以使用fadeToggle()方法在HTML元素的淡入和淡出之间切换。
如果所选元素淡出,fadeToggle()则将其淡入。
如果所选元素淡入,fadeToggle()将淡出它们。
以下示例在所有<p>元素的淡入和淡出之间切换:
示例
$("button").click(function(){
$("p").fadeToggle();
});
这是fadeToggle()方法 的语法:
$(selector).fadeToggle(duration, easing, callback);
该fadeToggle()方法接受三个可选参数:
duration -确定淡入淡出效果将持续多长时间。可能的值:“ slow”,“ fast”或毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定淡入淡出方法完成后要调用的函数
jQuery fadeTo()方法
jQuery fadeTo()方法逐渐将所选元素的不透明度更改为指定的不透明度。
注意:该fadeTo()方法不会更改页面的布局(所选元素仍将占用与以前相同的空间)。
此示例逐渐降低<div>元素的不透明度:
示例
$("button").click(function(){
$("div").fadeTo(500, 0.2);
});
这是fadeTo()方法 的语法:
$(selector)fadeTo.(duration, opacity, easing, callback)
参数:
duration -确定淡入淡出效果将持续多长时间。可能的值:“ slow”,“ fast”或毫秒
opacity-指定要淡入的不透明度。必须是介于0.00和1.00之间的数字
easing -(可选)指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-(可选)指定淡入淡出方法完成后要调用的函数
下面的示例演示了带有fadeTo()的回调参数:
示例
$("button").click(function(){
$("div").fadeTo(500, 0, function(){
alert("透明度降低!!!");
});
});
jQuery 效果 - 滑动
jQuery提供了一个简单的界面来执行各种惊人的效果。
jQuery效果方法使我们能够以最少的配置快速应用常用的效果。
jQuery滑动方法
使用jQuery,我们可以在元素上创建滑动效果。
我们有以下jQuery幻灯片方法:
slideUp()
slideDown()
slideToggle()
jQuery slideUp() 和 slideDown()
slideUp()方法通过滑动隐藏选定的元素。
slideDown()方法以滑动方式显示选定的元素。
下面的示例演示了slideUp()方法和slideDown()方法的用法:
示例
// 向上滑动段落
$("#btn1").click(function(){
$("p").slideUp();
});
// 向下滑动段落
$("#btn2").click(function(){
$("p").slideDown();
});
这是slideUp() 方法的语法:
$(selector).slideUp(duration, easing, callback);
这是slideDown()方法的语法:
$(selector).slideDown(duration, easing, callback);
无论slideUp()和slideDown()方法接受三个可选参数:
duration -确定滑动效果将运行多长时间。可能的值:“ slow”,“ fast”或毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定滑动方法完成后要调用的函数
下面的示例演示了使用slideUp()和slideDown()的duration参数:
示例
$("#btn1").click(function(){
$("p").slideUp(1500);
});
$("#btn2").click(function(){
$("p").slideDown(1500);
});
下面的示例演示了带有slideUp()和slideDown()的回调参数:
示例
$("#btn1").click(function(){
$("div").slideUp(1500, function(){
alert("向上滑动完成!");
});
});
$("#btn2").click(function(){
$("div").slideDown(1500, function(){
alert("向下滑动完成!");
});
});
动画化所有跨度(在这种情况下为单词)以快速滑动,在200毫秒内完成每个动画:
示例
<!DOCTYPE html>
<html>
<title>jQuery 上下滑动效果slideDown和slideUp示例 - 基础教程(nhooo.com)</title>
<head>
<style>
span {
background: #7F00FF;
color: white;
float: left;
padding: 10px 5px;
}
div {
margin-bottom: 15px;
}
.clearfix::after {
content: '';
clear: both;
display: table;
}
</style>
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("span:last-child").slideUp("fast", function(){
$(this).prev().slideUp("fast", arguments.callee);
});
});
$("#btn2").click(function(){
$("span:first-child").slideDown("fast", function(){
$(this).next().slideDown("fast", arguments.callee);
});
});
});
</script>
</head>
<body>
<div class="clearfix">
<span>The</span> <span>purpose</span> <span>of</span>
<span>jQuery</span> <span>is</span> <span>to</span>
<span>make</span> <span>it</span> <span>much</span>
<span>easier</span> <span>to</span> <span>use</span>
<span>JavaScript</span> <span>on</span> <span>your</span>
<span>website.</span>
</div>
<button id="btn1">向上滑动</button>
<button id="btn2">向下滑动</button>
</body>
</html>
jQuery slideToggle()方法
我们还可以使用slideToggle()方法在上下滑动HTML元素之间切换。
如果所选元素最初显示,它将被隐藏;如果隐藏,它将显示出来。
下面的示例在单击按钮时,在所有<p>元素的slideUp和slideDown之间切换:
示例
$("button").click(function(){
$("p").slideToggle(1500);
});
这是slideToggle()method 的语法:
$(selector).slideToggle(duration, easing, callback);
slideToggle()方法接受三个可选参数:
duration -确定滑动效果将运行多长时间。可能的值:“ slow”,“ fast”或毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定一个在slideToggle()方法完成后要调用的函数
jQuery 效果 - 动画
jQuery允许我们创建自定义动画。
jQuery动画-animate()方法
jQuery animate()方法对一组CSS属性执行自定义动画。
这是animate()方法的语法:
$(selector).animate({styles}, duration, easing, callback)
参数:
{styles} -指定动画将向其移动的CSS属性和值的对象
duration -确定动画效果将运行多长时间。可能的值:“ slow”,“ fast”或毫秒
easing -指示要用于过渡的缓动功能。可能的值:“ swing”,“ linear”
callback-指定在animate()方法完成后要调用的函数
以下示例通过更改元素的宽度为元素设置动画:
示例
$("button").click(function(){
$("div").animate({width: "500px"});
});
以下示例通过更改元素的位置来对元素进行动画处理:
示例
$("button").click(function(){
$("div").animate({left: "500px"});
});
默认情况下,所有HTML元素都具有静态位置,并且静态元素无法移动。
要操纵位置,请记住首先将元素的CSS 位置属性设置为相对,固定或绝对。
jQuery animate()-设置多个属性
我们还可以同时为一个元素的多个属性设置动画。
示例
$("button").click(function(){
$("div").animate({
width:"500px",
height:"400px",
opacity: 0.3,
left: "50px"
});
});
以下示例使用animate()演示了duration和easing参数:
示例
$("button").click(function(){
$("div").animate({
width:"500px",
height:"400px"
}, 4000, "linear");
});
以下示例使用animate()演示了回调参数:
示例
$("button").click(function(){
$("div").animate({
width:"500px",
height:"400px"
}, 500, "linear",
function(){
$(this).after("<h2>动画已经完成</h2>");
});
});
使用animate()方法时要记住的要点:
所有动画属性都应设置为单个数值(例如,宽度,高度或左值)。
字符串值不能设置为动画(例如,背景颜色)
要设置背景颜色的动画,请使用jQuery颜色插件
与animate()方法一起使用时,属性名称必须为camelCased,如:您应该使用paddingTop而不是padding-top,使用marginLeft而不是margin-left,等等。
jQuery animate()-使用队列动画
默认情况下,jQuery带有动画的队列功能。
在队列中,一个或多个功能等待运行。
这意味着,如果您彼此之后编写多个animate()调用,则jQuery将使用这些方法调用创建一个“内部”队列。然后,它一个一个地运行动画调用。
下面的示例首先更改DIV元素的宽度,然后更改高度,然后增加文本的字体大小:
示例
$("button").click(function(){
let div = $("div");
div.animate({width:"500px"});
div.animate({height:"200px"});
div.animate({fontSize: "10em"});
});
我们还可以使用jQuery的链接功能在一个队列中逐个动画一个元素的多个属性。
示例
$("button").click(function(){
$("div")
.animate({width:"500px"})
.animate({height:"200px"})
.animate({fontSize: "10em"})
.animate({opacity: 0.3});
});
jQuery animate()-使用相对值
动画属性也可以是相对的。如果为值提供了前导+=或-=字符序列,则通过从属性的当前值中添加或减去给定的数字来计算目标值。
示例
$("p").click(function(){
$(this).animate({
fontSize: "+=5px",
padding : "+=10px"
});
});
jQuery animate()-使用预定义值
此外,我们甚至可以指定属性的动画值"show","hide"或"toggle":
示例
$("button").click(function(){
$("div").animate({height: "toggle"});
});
jQuery 停止动画
jQuery stop()方法用于在jQuery动画或效果完成之前停止它。
jQuery stop()方法
stop()方法将在完成之前停止当前在选定元素上运行的jQuery动画或效果。
在元素上调用stop()时,当前正在运行的动画(如果有)立即停止。
如果在同一元素上调用了多个动画方法,则以后的动画将放置在效果队列中。
这是stop()方法的语法:
$(selector).stop(clearQueue, jumpToEnd)
stop()方法接受两个可选参数:
clearQueue-一个布尔值,指示是否也要删除排队的动画。默认为false
jumpToEnd-一个布尔值,指示是否立即完成当前动画。默认为false
下面的示例停止当前正在运行的动画:
示例
$("button").click(function(){
$("div").stop();
});
下面的示例,同时停止排队的动画:
示例
$("button").click(function(){
$("div").stop(true);
});
下面的示例为,立即完成所有动画后停止:
示例
<!DOCTYPE html>
<html>
<title>jQuery 停止动画示例 - 基础教程(nhooo.com)</title>
<head>
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("div").animate({width:"500px"}, 1500);
$("div").animate({height:"400px"}, 1500);
$("div").animate({width:"100px"}, 1500);
$("div").animate({height:"100px"}, 1500);
});
$("#btn2").click(function(){
$("div").stop(true, true);
});
});
</script>
<style>
div {
position: relative;
height: 100px;
width: 100px;
margin: 10px 0;
background: coral;
}
</style>
</head>
<body>
<button id="btn1">开始</button>
<button id="btn2">停止</button>
<div></div>
</body>
</html>
jQuery 回调函数(Callback)
JavaScript语句逐行执行。但是,由于jQuery效果需要一些时间才能完成,因此下一个代码行可能会在前一个效果仍在运行时执行。这会产生错误。
为了防止这种情况的发生,jQuery为每个效果方法提供了一个回调函数。
当前效果完成后,将执行回调函数。
回调函数作为效果方法的参数传递,它们通常显示为方法的最后一个参数。
典型语法: $(selector).hide(duration, easing, callback);
下面的示例具有一个回调参数,该参数是在隐藏效果完成后将执行的函数:
示例
$("button").click(function(){
$("p").hide("slow", function(){
// 效果完成后要执行的代码
alert("The paragraph is now hidden");
});
});
下面的示例没有回调参数,并且在隐藏效果完成之前将会显示警报框:
示例
$("button").click(function(){
$("p").hide("slow");
alert("该段落现已隐藏");
});
jQuery 链(Chaining)
jQuery提供了另一个强大的功能,称为方法链接。
链接允许我们在单个语句中的同一元素上运行多个jQuery方法。
jQuery方法链
到目前为止,我们一次只写一个jQuery语句(一个又一个)。
但是,有一种称为链接的技术,该技术可在单个语句中的同一元素上运行多个jQuery命令。
这样,浏览器不必多次查找相同的元素。
这是可能的,因为大多数jQuery方法都返回一个jQuery对象,该对象可以进一步用于调用另一个方法。
下面的实例链在一起css(),hide()和show()方法:
示例
$("button").click(function(){
$("p").css("background-color", "coral").hide(2000).show(2000);
});
我们还可以将一行代码分成多行以提高可读性。
例如,以上示例中的方法序列也可以写成:
示例
$("button").click(function(){
$("p")
.css("background-color", "coral")
.hide(2000)
.show(2000);
});
我们可以在一条语句中链接任意数量的方法:
示例
$("button").click(function(){
$("div")
.animate({width:"500px"})
.animate({height:"200px"})
.animate({fontSize: "10em"})
.animate({opacity: 0.3});
});
注意:有些jQuery方法不返回jQuery对象,而另一些仅根据我们传递给它的参数返回它。考虑以下示例:
// 正确用法
$("p").css("background-color", "coral").hide(2000).show(2000);
// 错误用法
$("p").css("background-color", "coral").hide().show();