您的位置:首页 > Web前端 > JQuery

web前端之锋利的jQuery五:jQuery中的动画

2016-12-06 15:06 791 查看

web前端之锋利的jQuery五:jQuery中的动画

1.show()、hide():

show方法和hide方法是jQuery中最基本的动画方法。在HTML文档中,为一个元素用hide方法,会将该元素的display样式改为“none”

$(“element”).hide();等同于$(“elemnt”).css(“display”,”none”);

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#panel h5.head').hover(function(){
$(this).next().show();
},function(){
$(this).next().hide();
});
});
</script>
<style type="text/css">
.content{
display:none;
}
</style>
</head>
<body>
<div id="panel">
<h5 class="head">什么是jQuery</h5>
<div class="content">
jQuery是继prototype之后又一个优秀的JavaScript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
</div>
</div>
</body>
</html>


2.show()、hide()方法让元素动起来:

show()、hide()不带参数,就和上面表现形式是一样的。但是如果想调用show()方法时,元素慢慢的显示出来,可以为show()方法制定一个速度参数

$(“element”).show(1000);

$(“element”).hide(1000);

代码在1秒内显示或隐藏

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#panel h5.head').hover(function(){
$(this).next().show(1000);
},function(){
$(this).next().hide(1000);
});
});
</script>
<style type="text/css">
.content{
display:none;
}
</style>
</head>
<body>
<div id="panel">
<h5 class="head">什么是jQuery</h5>
<div class="content">
jQuery是继prototype之后又一个优秀的JavaScript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
</div>
</div>
</body>
</html>


fadeln()、fadeOut():

与show()方法不同的是,fadeIn和fadeOut方法只改变元素的不透明度。fadeOut方法会在指定的一段时间内降低元素的不透明度,直到元素完全消失(dispaly:none;)。fadeIn则相反

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#panel h5.head').hover(function(){
$(this).next().fadeIn();
},function(){
$(this).next().fadeOut();
});
});
</script>
<style type="text/css">
.content{
display:none;
}
</style>
</head>
<body>
<div id="panel">
<h5 class="head">什么是jQuery</h5>
<div class="content">
jQuery是继prototype之后又一个优秀的JavaScript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
</div>
</div>
</body>
</html>


slideUp()、slideDown():

slideUp方法和slideDown方法只改变元素的高度。如果一个元素的display的属性为none时,调用slideDown方法时,这个元素会从上到下延伸显示。slideUp则相反

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#panel h5.head').hover(function(){
$(this).next().slideDown();
},function(){
$(this).next().slideUp();
});
});
</script>
<style type="text/css">
.content{
display:none;
}
</style>
</head>
<body>
<div id="panel">
<h5 class="head">什么是jQuery</h5>
<div class="content">
jQuery是继prototype之后又一个优秀的JavaScript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
</div>
</div>
</body>
</html>


自定义简单动画:

前面几个小例子都可以让元素动起来,animate方法也可以让元素动起来,而且animate更具有活性。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>动画</title>
<script type="text/javascript" src="../js/jquery-3.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#panel").css("opacity","0.5");
$("#panel").click(function(){
//$(this).animate({left:"500px"},3000);普通状态
//$(this).animate({left:"+=500px"},3000);累加动画
//$(this).animate({left:"500px",height:"200px"},3000);多重动画
/*按顺序执行多个动画
$(this).animate({left:"500px"},3000);
$(this).animate({height:"200px"},3000);
*/
//综合动画
$(this).animate({left:"400px",height:"200px",opacity:"1"},3000)
.animate({top:"200px",width:"200px"},3000)
.fadeOut("slow");
});
});
</script>
<style type="text/css">
#panel{
position: relative;
width: 100px;
height: 100px;
border: 1px solid #0050D0;
background: #96E555;
cursor: pointer;/*鼠标样式*/
}
</style>
</head>
<body>
<div id="panel"></div>
</body>
</html>


动画回调函数:

上面的小例子中,如果在最后一步想要的是切换CSS样式,只需要按照常规方法:css(“dorder”,”5px solid blue”)。将css()方法写入到最后一个动画的回调函数中,代码如下:

$("#panel").click(function(){
$(this).animate({left:"400px",height:"200px",opacity:"1"},3000)
.animate({top:"200px",width:"200px"},3000,function(){
$(this).css("border","5px solid blue");
})
});


这样一来,css方法就加入到动画队列中了

callback回调函数适用于jQuery所有的动画效果方法

停止动画和判断是否处于动画状态:

1.停止元素动画(stop方法):

很多时候需要停止匹配元素正在进行的动画,就需要stop方法了。stop方法的语法结构为:stop([clearQueue].[gotoEnd]);

参数clearQueue和gotoEnd都是可选参数,为Boolean值(ture或flase)。clearQueue代表是否清空未执行完的动画队列,gotoEnd代表是否直接将正在执行的动画跳转到末状态,如果直接使用stop则会立刻停止正在运动的动画

2.判断元素是否处于动画状态(animated方法):

if(!$(element).is(“:animated”)){

//如果当前没有进行动画,则添加动画

}

3.延迟动画(delay方法):

在动画执行过程中,如果想对动画进行延迟操作,那么可以使用delay()方法

$(this).animate({left:"400px",height:"200px",opacity:"1"},3000)
.delay(1000)
.animate({top:"200px",wiodth:"200px"},3000)
.delay(2000)
.fadeOut("slow");


delay()方法允许我们将队列中的函数延时执行,它既可以推迟动画队列中的函数执行,也可以用于自定义队列

其他动画方法:

toggle(speed,[callback])

toggle方法可以切换元素的可见状态。如果元素是可见的,则切换为隐藏,如果元素是隐藏的,则切换可见。

slideToggle(speed,[easing],[callback])

slideToggle方法通过高度变化来切换匹配元素的可见性。这个动画效果只调整元素的高度。

fadeTo(speed,opacity,[callback])

fadeTo可以吧元素的不透明度以渐进的方式调整到指定的值,这个方法只调整不透明度。

fadeTo(600,0.5)

fadeToggle(speed,[easing],[callback])

fadeToggle方法通过不透明变化来切换匹配元素的可见性。这个动画效果只调整元素的不透明度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息