第五章 jQuery框架动画特效

5.1 jQuery动画特效说明

jQuery框架中为我们封装了众多的动画和特效方法,只需要调用对应的动画方法传递合适的参数,就能够方便的实现一些炫酷的效果,而且jQuery框架还支持自定义各种动画效果。

jQuery中的动画效果主要有以下方法

① 显示和隐藏动画
② 展开和收起动画
③ 淡入和淡出动画
④ 自定义动画效果


5.2 显示和隐藏动画

jQuery框架中为我们提供了专门的方法来控制让标签显示或者是隐藏。标签的显示和隐藏在开发中相对来说是比较常见的操作,如果使用原生的JavaScript代码来控制标签的显示或者是隐藏,那么我们主要通过控制该标签的display属性值来实现。

jQuery中控制标签显示和隐藏的动画方法

① show() 控制让标签显示的动画方法
② hide() 控制让标签隐藏的动画方法
③ toggle()控制让标签显示|隐藏效果切换的动画方法

ex:以原生的方法来控制标签的显示或隐藏

 <!DOCTYPE html>
<html lang="en">
<head>
<!--....-->
<style>
#demoID{
width: 200px;
height: 50px;
background: red;
}
</style>
<script src="jquery-3.1.1.js"></script>
</head>
<body>
<div id="demoID"></div>
<script>
//控制标签显示或隐藏的方式(1)
//document.getElementById("demoID").style.display = "none";
//document.getElementById("demoID").style.display = "block";
//控制标签显示或隐藏的方式(2)
//$("#demoID").css("display","none");
$("#demoID").css("display","block");
</script>
</body>
</html>

显示和隐藏动画方法语法

$("selector").show(speed,callBack)
$("selector").hide(speed,callBack)

参数说明:

第一个参数:可选的参数。speed表示执行动画的速度,该速度可以使用系统默认提供的值,也可以自己以数字的形式传入。

系统默认提供的值有:“slow”、“normal”、“fast”,对应的速度分别为0.6秒、0.4秒和0.2秒。

自己以数字的形式传递则:传递如1000|3000类似的值,单位为毫秒,如果传递1000表示动画的执行速度为1秒。

第二个参数:可选的参数。callBack为动画完成时执行的回调函数,该函数每个元素执行一次。

切换动画方法语法

调用方式[1] => $("selector").toggle()
调用方式[2] => $("selector").toggle(speed,callBack)

方法参数说明:

(1)调用方式[1],不传递参数。切换当前元素(标签)的可见状态,如果当前元素的状态为不可见,则切换为可见,如果当前元素的状态为可见,则切换为不可见。

(2)调用方式[2],第一个可选的参数为动画执行的速度,第二个可选的参数为动画执行完后执行的回调函数。

总结

show方法和hide方法用来控制标签的显示或者是隐藏,内部的实现逻辑是同时改变标签的宽度、高度和透明度


5.3 展开和收起动画

jQuery框架中,为我们提供实现滑动效果的方法,slideDown和slideUp方法分别可以用来控制标签展开和收起。

展开和收起动画方法语法

slideDown(speed,callBack);
slideUp(speed,callBack)
slideToggle(speed,callBack)

方法解释

slideDown方法的功能是设置让指定标签的高度从顶部向底部增加,以呈现出一种展开的动画效果,元素的其他属性不会发生任何变化。

sldeUp方法的功能是设置让指定标签的高度从底部向顶部减小,仅仅改变标签的高度,其他的属性并不会改变。

slideToggle方法用来切换所选择元素的高度,如果当前标签的高度不为0,那么调用该方法后就会把标签的高度过渡为0,实现收起的效果,否则就实现展开的效果。

注意:无论是展开还是收起的动画方法,他们的动画效果都仅仅只会改变(增加或减小)标签的高度。

参数说明

第一个参数:动画执行的时间,同show方法。
第二个参数:动画执行完毕的回调函数,可以省略,同show方法。

代码示例

 <body>
<div>我是div</div>
<button>展开</button>
<button>收起</button>
<button>切换</button>
<script>
$(function () {
$("button").eq(0).click(function () {
$("div").slideDown(2000,function () {
console.log("展开");
});
})
$("button").eq(1).click(function () {
$("div").slideUp(2000);
})
$("button").eq(2).click(function () {
$("div").slideToggle(1000,function () {
alert("切换动画指定完毕")
});
})
})
</script>
</body>

5.4 淡入和淡出动画

jQuery框架中还提供了淡入和淡出的动画方法,这两个方法分别是fadeIn和fadeOut。

淡入和淡出动画方法语法

fadeIn(speed,callBack);
fadeOut(speed,callBack)
fadeToggle(speed,callBack)
fadeTo(speed,opactity,callBack)

方法说明:

淡入淡出方法的内部实现原理是控制标签的透明度,通过改变选中标签的透明度来实现淡入和淡出的动画效果,并不修改其他的属性。

fadeIn()方法的作用是淡入动画,即改变标签的透明度让标签慢慢的显示出来。

fadeOut()方法的作用是淡出动画,即改变标签的透明度让标签慢慢的消失(透明度为0)。

fadeToggle()方法的作用是切换动画,如果当前标签的透明度不为0,那么就执行淡出动画,否则就执行淡入动画。

fadeTo()方法的作用是淡入到,即使用动画效果实现将标签的透明度设置为指定的值。

备注:标签透明度的取值范围为0.0~1.0。

参数说明:

speed参数:动画执行的速度,单位为毫秒。
callBack参数:动画执行完毕的回调函数,可选。
opacity参数:指定的标签透明度(0.0~1.0)。

代码示例

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="JS/jquery-3.2.1.js"></script>
<style>
div{
width: 400px;
height: 200px;
background: red;
}
</style>
</head>
<body>
<div>我是div</div>
<button>淡入</button>
<button>淡出</button>
<button>切换</button>
<button>惦记我</button>
<script>
//fadeIn:淡入
//fadeOut:淡出
//fadeToggle切换
//fadeTo:淡入淡出到...0.5
$(function () {
//01 获取页面中指定的按钮,添加点击事件
$("button:eq(0)").click(function () {
//02 点击按钮后,获取页面中的div标签,设置动画
//第一个参数:速度
//第二个参数:回调
$("div").fadeIn(2000,function () {
alert("显示完成");
});
})
$("button:eq(1)").click(function () {
$("div").fadeOut(1000,function () {
alert("淡出")
});
})
$("button:eq(2)").click(function () {
$("div").fadeToggle();
})
$("button:eq(3)").click(function () {
//第一个参数:速度
//第二个参数:目标值
//第三个参数:回调
$("div").fadeTo(1000,0.5,function () {
alert("执行动画完毕")
});
})
})
</script>
</body>
</html>

5.5 自定义动画

jQuery框架中本身已经为我们封装好了一些简单的控制标签宽高、透明度相关的方法,如显示和隐藏、展开和收起、淡入和淡出,除了这些方法之外,jQuery还为我们提供了animate()方法,允许我们自定义动画效果,通过一些设置我们可以实现更加复杂的动画效果,

自定义动画的语法

animate(params,speed,easing,callBack)

参数说明:
第一个参数:params是一个对象。在该对象中以键值对的方式来要控制的属性样式和对应的值表示。

第二个参数:speed速度,可以是默认字符串中的某个(“slow” “normal” “fast”)或者是自定义的数字。

第三个参数:easing为动画插件使用的可选参数,用来控制动画的表现效果,通常有linear和swing等固定值。

第四个参数:动画执行完毕后的回调函数。

代码示例

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 200px;
height: 50px;
background: red;
}
</style>
</head>
<body>
<!--
animate({},timer,fn)
第一个参数:目标对象
第二个参数:速度
第三个参数:回调函数
-->
<div>我是个好人</div>
<button>
喜欢我就点我吧
</button>
<button>
喜欢我就点我吧2
</button>
<script src="js/jquery-3.2.1.js"></script>
<script>
$(function () {
$("button:eq(0)").click(function () {
$("div").animate({
width:"+=50",
height:"+=100"
},1000);
})
$("button:eq(1)").click(function () {
//01 直接设置目标值:速度和回调函数可以被省略
// $("div").animate({
// width:400,
// height:100
// },2000,function () {
// alert("执行完毕");
// })
//02 第二种用法
// $("div").animate({
// width:"+=50",
// height:"+=100"
// },1000);
//03 动画切换(如果有值那么就设置为0,否则就恢复)
$("div").animate({
width:"toggle",
height:"+=100"
},1000);
})
})
</script>
</body>
</html>

动画队列、动画停止和动画延迟

动画队列:如果某个标签身上要调用多个动画相关方法,即需要展示多个动画效果,那么所有的这些动画效果并不会同一时刻发生,而是需要在队列中排队,然后按照队列中动画效果的顺序依次展现。

动画停止:在执行动画的时候,可以通过stop()方法来停止动画。停止动画的语法为:

stop(clearQueue,gotoEnd)

方法和参数说明:

stop方法的功能是停止指定标签中正在执行的动画,其中第一个参数clearQueue为可选参数,传递一个布尔类型的值,表示是否停止正在执行的动画。第二个参数gotoEnd也是可选参数,传递一个布尔类型的值,表示是否立即完成正在执行的动画。

动画延迟:设置一个延时的值来推迟后续队列中动画的执行,可以传递延迟的具体时间,单位为毫秒。

代码示例01

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 200px;
height: 200px;
background: yellow;
}
</style>
</head>
<body>
<div>
</div>
<button>按钮</button>
<script src="js/jquery-3.2.1.js"></script>
<script>
$(function () {
$("button").click(function () {
$("div").animate({
width:"50px"
})
.animate({
height:50
})
.delay(2000)
.animate({
height:300
})
.animate({
width:400
})
})
})
</script>
</body>
</html>

代码示例02

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 50px;
height: 50px;
background: green;
}
</style>
</head>
<body>
<div>
</div>
<button>按钮</button>
<script src="js/jquery-3.2.1.js"></script>
<script>
$(function () {
//01 当页面加载完毕就执行动画效果
$("div").animate({
width:"400px"
},2000)
.animate({
height:200
},1000)
.delay(1000)
.animate({
height:50
})
.animate({
width:50
})
//02 当点击按钮的时候停止动画
$("button").click(function () {
//01 没有传递参数:结束当前的动画,继续执行后面的动画
//$("div").stop();
//02 传递1参数:
// true:所有的动画全部结束
// false:结束当前的动画,继续执行后面的动画
//$("div").stop(true);
//$("div").stop(false);
//03 传递2参数:
//true true : 立刻结束到达当前动画的终点,后面的不再执行
//true false:所有的动画全部结束
//false false:结束当前的动画,继续执行后面的动画
//false true : 立刻结束到达当前动画的终点,后面的继续执行
//$("div").stop(true,true);
//$("div").stop(true,false);
//$("div").stop(false,false);
$("div").stop(false,true);
})
})
</script>
</body>
</html>

jQuery系列 第五章 jQuery框架动画特效的更多相关文章

  1. jQuery系列 第四章 jQuery框架的选择器

    第四章 jQuery框架的选择器 4.1 jQuery选择器说明 jQuery 最核心的组成部分就是选择器引擎.它完全继承了 CSS 的风格,可以对 DOM 元 素的标签名.属性名.状态等进行快速准确 ...

  2. jQuery系列 第七章 jQuery框架DOM操作

    第七章 jQuery框架的选择器 jQuery框架继承和优化了JavaScript访问DOM对象的特性,我们使用jQuery框架提供的api可以更加方便的操作DOM对象. 7.1 创建DOM节点 使用 ...

  3. jQuery系列 第六章 jQuery框架事件处理

    第六章 jQuery框架事件处理 JavaScript以事件驱动来实现页面的交互,其核心是以消息为基础,以事件来驱动.虽然利用传统的JavaScript事件处理方式也能够完成页面交互,但jQuery框 ...

  4. jQuery系列 第三章 jQuery框架操作CSS

    第三章 jQuery框架操作CSS 3.1 jQuery框架的CSS方法 jQuery框架提供了css方法,我们通过调用该方法传递对应的参数,可以方便的来批量设置标签的CSS样式. 使用JavaScr ...

  5. jquery系列教程7-自定义jquery插件全解:对象函数、全局函数、选择器

    点击打开: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件操作全解 jquery系列教程5-动 ...

  6. 一款jquery和css3实现的卡通人物动画特效

    之前为大家分享了很多jquery和css3的动画实例.今天给大家带来一款非常炫的jquery和css3实现的卡通人物动画特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: < ...

  7. 第五章 jQuery中的动画

    通过jQuery中的动画方法,能轻松地为网页添加精彩的视觉效果,给用户一种全新体验. 1.show()方法和hide()方法 该方法的功能与css()方法设置display属性效果相同. 给show( ...

  8. jQuery系列:五个模块总结

    Query插件,以备并希望在前端方面有所长进.请批评指正. 一,类型判断全解 JQuery判断类型扩展方法:$.type() /*type: function( obj ) { if ( obj == ...

  9. JAVA基础第五章-集合框架Map篇

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

随机推荐

  1. hibernate学习之持久化对象

    Hibernate对其持久化对象实现了缓存管理,来提高系统性能,Hibernate支持两级缓存管理,一级缓存 是由Session提供的,因此它只存在于Session的生命周期中,是Session所内置 ...

  2. Linux运维人员共用root帐户权限审计(转至马哥Linux运维)

    一.应用场景 在中小型企业,公司不同运维人员基本都是以root 账户进行服务器的登陆管理,缺少了账户权限审计制度.不出问题还好, 出了问题,就很难找出源头.这里介绍下,如何利用编译bash 使不同的客 ...

  3. Python下载图片小程序

    欢迎大侠们指正批评 思路: 1.引入相关的python文件(import re  import urllib) 2.读取对应网页的html文件(使用 urllib) def getHtml(url): ...

  4. java多线程的(一)-之java线程的使用

    一.摘要 每天都和电脑打交道,也相信大家使用过资源管理器杀掉过进程.而windows本身就是多进程的操作系统 在这里我们理解两组基本概念: 1.进程和线程的区别???? 2.并行与并发的区别???? ...

  5. web服务器学习4---httpd-2.4.29优化

    实验环境: 环境:CentOS 7.4 软件版本:httpd-2.4.29 一.网页压缩 1.检查是否安装压缩模块 apachectl -D DUMP_MODULES | grep deflate 如 ...

  6. 游戏安全有多重要?——GAME-TECH游戏开发者技术沙龙

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云+社区运营团队发布在腾讯云+社区 腾讯云GAME-TECH沙龙继3月深圳站后,将于4月13日来到北京站,与游戏厂商和游戏开发者,畅聊 ...

  7. c语言第1次作业

    一.PTA实验作业 题目1:7-3 温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1 ...

  8. 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现

    20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...

  9. 作业07-Java GUI编程

    1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容. 关于事件.事件源.事件监听器的总结: 事件:用户在GUI上进行的操作,如鼠标单击.输入文字.关 ...

  10. scrapy crawl 源码修改 爬虫多开

    import os from scrapy.commands import ScrapyCommand from scrapy.utils.conf import arglist_to_dict fr ...