jQuery动画特效

调用show()和hide()方法显示和隐藏元素

show()hide()方法用于显示或隐藏页面中的元素

1
2
$(selector).hide(speed,[callback])
$(selector).show(speed,[callback])

参数speed设置隐藏或显示时的速度值,可为“slow”、“fast”或毫秒数值,可选项参数callback为隐藏或显示动作执行完成后调用的函数名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>show()和hide()方法动画方式显示和隐藏元素</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3>show()和hide()方法动画方式显示和隐藏元素</h3>
<div>
<h4>我喜欢吃的水果</h4>
<ul>
<li>苹果</li>
<li>甘桔</li>
<li>梨</li>
</ul>
<input id="hidval" type="hidden" value="0"/>
<input id="button" type="button" value="show"/>
</div>
<script type="text/javascript">
$(function () {
$("h4").bind("click", function () {
if ($("#hidval").val() == 0) {
//设置时间及函数
$("ul").show(3000,function(){
$("#hidval").val(1);
//无参数
$("#button").hide();
})
} else {
$("ul").hide(3000,function(){
$("#hidval").val(0);
$("#button").show();
})
}
})
});
</script>
</body>
</html>

调用toggle()方法实现动画切换效果

实现元素的显示与隐藏需要使用hide()show(),那么有没有更简便的方法来实现同样的动画效果呢?
调用toggle()方法就可以很容易做到

  • 如果元素处于显示状态,调用该方法则隐藏该元素
  • 如果元素处于隐藏状态,调用该方法则显示该元素
    它的调用格式是:
    $(selector).toggle(speed,[callback])
    其中speed参数为动画效果时的速度值,可以为数字,单位为毫秒,也可是“fast”、“slow”字符,可选项参数callback为方法执行成功后回调的函数名称。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>toggle()方法的动画切换效果</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <h3>toggle()方法的动画切换效果</h3>
    <div>
    <h4>
    <span class="fl">我喜欢吃的水果</span>
    <span class="fr" id="spnTip">显示</span>
    </h4>
    <ul>
    <li>苹果</li>
    <li>甘桔</li>
    <li>梨</li>
    </ul>
    </div>
    <script type="text/javascript">
    $(function () {
    var $spn = $("#spnTip");
    $("h4").bind("click", function () {
    $("ul").toggle("slow",function(){
    $spn.html() == "隐藏" ? $spn.html("显示") : $spn.html("隐藏");
    })
    });
    });
    </script>
    </body>
    </html>

使用slideUp()和slideDown()方法的滑动效果

可以使用slideUp()slideDown()方法在页面中滑动元素

  • slideUp()用于向上滑动元素
  • slideDown()用于向下滑动元素
    调用方法分别为:
    $(selector).slideUp(speed,[callback])$(selector).slideDown(speed,[callback])
    其中speed参数为滑动时的速度,单位是毫秒,可选项参数callback为滑动成功后执行的回调函数名。
    要注意的是:slideDown()仅适用于被隐藏的元素;slideup()则相反。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>使用slideUp()和slideDown()方法的滑动效果</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <h3>使用slideUp()和slideDown()方法的滑动效果</h3>
    <div>
    <h4>我喜欢吃的水果</h4>
    <ul>
    <li>苹果</li>
    <li>甘桔</li>
    <li>梨</li>
    </ul>
    <input id="hidval" type="hidden" value="0"/>
    </div>
    <script type="text/javascript">
    $(function () {
    $("h4").bind("click", function () {
    if ($("#hidval").val() == 0) {
    $("ul").slideDown("slow",function() {
    $("#hidval").val(1);
    })
    } else {
    $("ul").slideUp("slow",function(){
    $("#hidval").val(0);
    })
    }
    })
    });
    </script>
    </body>
    </html>

使用slideToggle()方法实现图片“变脸”效果

使用slideToggle()方法可以切换slideUp()slideDown()
即调用该方法时,如果元素已向上滑动,则元素自动向下滑动,反之,则元素自动向上滑动
格式为$(selector).slideToggle(speed,[callback])
其中speed参数为动画效果时的速度值,可以为数字,单位为毫秒,也可是“fast”、“slow”字符,可选项参数callback为方法执行成功后回调的函数名称。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用slideToggle()方法切换滑动效果</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3>使用slideToggle()方法切换滑动效果</h3>
<div>
<h4>
<span class="fl">我喜欢吃的水果</span>
<span class="fr" id="spnTip">向下滑</span></h4>
<ul>
<li>苹果</li>
<li>甘桔</li>
<li>梨</li>
</ul>
<input id="hidval" type="hidden" value="0"/>
</div>
<script type="text/javascript">
$(function () {
var $spn = $("#spnTip");
$("h4").bind("click", function () {
$("ul").slideToggle("slow",function() {
$spn.html() == "向下滑" ? $spn.html("向上滑") : $spn.html("向下滑");
})
})
});
</script>
</body>
</html>

使用fadeIn()与fadeOut()方法实现淡入淡出效果

fadeIn()fadeOut()方法可以实现元素的淡入淡出效果,前者淡入隐藏的元素,后者可以淡出可见的元素
它们的调用格式分别为$(selector).fadeIn(speed,[callback])$(selector).fadeOut(speed,[callback])
其中参数speed为淡入淡出的速度,callback参数为完成后执行的回调函数名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用fadeIn()与fadeOut()方法实现元素淡入淡出的效果</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3>使用fadeIn()与fadeOut()方法实现元素淡入淡出的效果</h3>
<div>
<h4>我喜欢吃的水果</h4>
<ul>
<li>苹果</li>
<li>甘桔</li>
<li>梨</li>
</ul>
<input id="hidval" type="hidden" value="0"/>
</div>
<script type="text/javascript">
$(function () {
$("h4").bind("click", function () {
if ($("#hidval").val() == 0) {
$("ul").fadeIn("slow",function() {
$("#hidval").val(1);
})
} else {
$("ul").fadeOut(3000,function() {
$("#hidval").val(0);
})
}
})
});
</script>
</body>
</html>

使用fadeTo()方法设置淡入淡出效果的不透明度

调用fadeTo()方法,可以将所选择元素的不透明度以淡入淡出的效果调整为指定的值
该方法的调用格式为$(selector).fadeTo(speed,opacity,[callback])
其中speed参数为效果的速度,opacity参数为指定的不透明值,它的取值范围是0.0~1.0,可选项参数callback为效果完成后,回调的函数名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用fadeTo()方法设置淡入淡出效果的不透明度</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<style type="text/css">
span
{
width: 70px;
height: 70px;
float: left;
border: solid 1px #ccc;
margin: 0px 8px;
}
.red
{
background-color: Red;
}
.orange
{
background-color:Orange;
}
.blue
{
background-color: Blue;
}
</style>
</head>
<body>
<h3>使用fadeTo()方法设置淡入淡出效果的不透明度</h3>
<span class="red"></span><span class="orange"></span><span class="blue"></span>
<script type="text/javascript">
$(function () {
$("span").each(function (index) {
switch (index) {
case 0:
$(this).fadeTo(3000,0.3);
break;
case 1:
$(this).fadeTo(3000,0.6);
break;
case 2:
$(this).fadeTo(3000,0.9);
break;
}
});
});
</script>
</body>
</html>

调用animate()方法制作简单的动画效果

调用animate()方法可以创建自定义动画效果
调用格式为$(selector).animate({params},speed,[callback])
其中,params参数为制作动画效果的CSS属性名与值,speed参数为动画的效果的速度,单位为毫秒,可选项callback参数为动画完成时执行的回调函数名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>制作简单的动画效果</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<style type="text/css">
span
{
float: left;
border: solid 1px #ccc;
margin: 0px 8px;
background-color: Blue;
color:White;
vertical-align:middle
}
</style>
</head>
<body>
<h3>制作简单的动画效果</h3>
<span></span>
<div id="tip"></div>
<script type="text/javascript">
$(function () {
$("span").animate({
width: "80px",
height: "80px"
},
3000, function () {
$("#tip").html("执行完成!");
});
});
</script>
</body>
</html>

调用animate()方法制作移动位置的动画

调用animate()方法不仅可以制作简单渐渐变大的动画效果,而且还能制作移动位置的动画
在移动位置之前,必须将被移元素的“position”属性值设为“absolute”或“relative”,否则,该元素移动不了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>制作移动位置的动画</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<style type="text/css">
span
{
position:absolute;
width:80px;
height:80px;
border: solid 1px #ccc;
margin: 0px 8px;
background-color: Red;
color:White;
vertical-align:middle
}
</style>
</head>
<body>
<h3>制作移动位置的动画</h3>
<span></span>
<div id="tip"></div>
<script type="text/javascript">
$(function () {
$("span").animate({
left: "+=100px"
}, 3000, function () {
$("span").animate({
height: '+=30px',
width: '+=30px'
}, 3000, function () {
$("#tip").html("执行完成!");
});
});
});
</script>
</body>
</html>

调用stop()方法停止当前所有动画效果

stop()方法的功能是在动画完成之前,停止当前正在执行的动画效果,这些效果包括滑动、淡入淡出和自定义的动画,
调用格式为$(selector).stop([clearQueue],[goToEnd])
其中,两个可选项参数clearQueue和goToEnd都是布尔类型值,前者表示是否停止正在执行的动画,后者表示是否完成正在执行的动画,默认为false。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>调用stop()方法停止当前所有动画效果</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
<style type="text/css">
div
{
margin: 10px 0px;
}
span
{
position:absolute;
width:80px;
height:80px;
border: solid 1px #ccc;
margin: 0px 8px;
background-color: Red;
color:White;
vertical-align:middle
}
</style>
</head>
<body>
<h3>调用stop()方法停止当前所有动画效果</h3>
<span></span>
<input id="btnStop" type="button" value="停止" />
<div id="tip"></div>
<script type="text/javascript">
$(function () {
$("span").animate({
left: "+=100px"
}, 3000, function () {
$(this).animate({
height: '+=60px',
width: '+=60px'
}, 3000, function () {
$("#tip").html("执行完成!");
});
});
$("#btnStop").bind("click", function () {
$("span").stop();
$("#tip").html("执行停止!");
});
});
</script>
</body>
</html>

调用delay()方法延时执行动画效果

delay()方法的功能是设置一个延时值来推迟动画效果的执行
调用格式为$(selector).delay(duration)
其中参数duration为延时值,它的单位是毫秒,当超过延时值时,动画继续执行。
```
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



调用delay()方法延时执行动画效果





调用delay()方法延时执行动画效果