分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

jQuery系列 第五章 jQuery框架动画特效

发布时间:2023-09-06 01:49责任编辑:顾先生关键词:jQuery动画

第五章 jQuery框架动画特效

5.1 jQuery动画特效说明

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

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

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


5.2 显示和隐藏动画

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

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

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

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

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<!--....--> 5 ????<style> 6 ????????#demoID{ 7 ????????????width: 200px; 8 ????????????height: 50px; 9 ????????????background: red;10 ????????}11 ????</style>12 ????<script src="jquery-3.1.1.js"></script>13 </head>14 <body>15 <div id="demoID"></div>16 <script>17 ????//控制标签显示或隐藏的方式(1)18 ????//document.getElementById("demoID").style.display = "none";19 ????//document.getElementById("demoID").style.display = "block";20 ????//控制标签显示或隐藏的方式(2)21 ????//$("#demoID").css("display","none");22 ????$("#demoID").css("display","block");23 </script>24 </body>25 </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方法。

代码示例

 1 <body> 2 <div>我是div</div> 3 <button>展开</button> 4 <button>收起</button> 5 <button>切换</button> 6 <script> 7 ????$(function () { 8 ????????$("button").eq(0).click(function () { 9 ????????????$("div").slideDown(2000,function () {10 ????????????????console.log("展开");11 ????????????});12 ????????})13 ????????$("button").eq(1).click(function () {14 ????????????$("div").slideUp(2000);15 ????????})16 ????????$("button").eq(2).click(function () {17 ????????????$("div").slideToggle(1000,function () {18 ????????????????alert("切换动画指定完毕")19 ????????????});20 ????????})21 ????})22 </script>23 </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)。

代码示例

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>Title</title> 6 ????<script src="JS/jquery-3.2.1.js"></script> 7 ????<style> 8 ????????div{ 9 ????????????width: 400px;10 ????????????height: 200px;11 ????????????background: red;12 ????????}13 ????</style>14 </head>15 <body>16 <div>我是div</div>17 <button>淡入</button>18 <button>淡出</button>19 <button>切换</button>20 <button>惦记我</button>21 <script>22 ????//fadeIn:淡入23 ????//fadeOut:淡出24 ????//fadeToggle切换25 ????//fadeTo:淡入淡出到...0.526 ????$(function () {27 ????????//01 获取页面中指定的按钮,添加点击事件28 ????????$("button:eq(0)").click(function () {29 ????????????//02 点击按钮后,获取页面中的div标签,设置动画30 ????????????//第一个参数:速度31 ????????????//第二个参数:回调32 ????????????$("div").fadeIn(2000,function () {33 ????????????????alert("显示完成");34 ????????????});35 ????????})36 ????????$("button:eq(1)").click(function () {37 ????????????$("div").fadeOut(1000,function () {38 ????????????????alert("淡出")39 ????????????});40 ????????})41 ????????$("button:eq(2)").click(function () {42 ????????????$("div").fadeToggle();43 ????????})44 ????????$("button:eq(3)").click(function () {45 ????????????//第一个参数:速度46 ????????????//第二个参数:目标值47 ????????????//第三个参数:回调48 ????????????$("div").fadeTo(1000,0.5,function () {49 ????????????????alert("执行动画完毕")50 ????????????});51 ????????})52 ????})53 </script>54 </body>55 </html>

5.5 自定义动画

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

自定义动画的语法

animate(params,speed,easing,callBack)

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

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

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

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

代码示例

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>Title</title> 6 ????<style> 7 ????????div{ 8 ????????????width: 200px; 9 ????????????height: 50px;10 ????????????background: red;11 ????????}12 ????</style>13 </head>14 <body>15 <!--16 ????animate({},timer,fn)17 ????第一个参数:目标对象18 ????第二个参数:速度19 ????第三个参数:回调函数20 -->21 <div>我是个好人</div>22 <button>23 ????喜欢我就点我吧24 </button>25 <button>26 ????喜欢我就点我吧227 </button>28 <script src="js/jquery-3.2.1.js"></script>29 <script>30 ????$(function () {31 ????????$("button:eq(0)").click(function () {32 ????????????$("div").animate({33 ????????????????width:"+=50",34 ????????????????height:"+=100"35 ?????????????},1000);36 ????????})37 ????????$("button:eq(1)").click(function () {38 ????????????//01 直接设置目标值:速度和回调函数可以被省略39 ????????????// ???????????$("div").animate({40 // ???????????????width:400,41 // ???????????????height:10042 // ???????????},2000,function () {43 // ???????????????alert("执行完毕");44 // ???????????})45 ????????????//02 第二种用法46 ????????????// ???????????$("div").animate({47 ????????????// ???????????????width:"+=50",48 ????????????// ???????????????height:"+=100"49 ????????????// ???????????},1000);50 ????????????//03 动画切换(如果有值那么就设置为0,否则就恢复)51 ????????????$("div").animate({52 ????????????????width:"toggle",53 ????????????????height:"+=100"54 ????????????},1000);55 ????????})56 ????})57 </script>58 </body>59 </html>

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

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

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

stop(clearQueue,gotoEnd)

方法和参数说明:

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

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

代码示例01

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>Title</title> 6 ????<style> 7 ????????div{ 8 ????????????width: 200px; 9 ????????????height: 200px;10 ????????????background: yellow;11 ????????}12 ????</style>13 </head>14 <body>15 <div>16 </div>17 <button>按钮</button>18 <script src="js/jquery-3.2.1.js"></script>19 <script>20 ????$(function () {21 ????????$("button").click(function () {22 ????????????$("div").animate({23 ????????????????width:"50px"24 ????????????})25 ????????????????????.animate({26 ????????????????????????height:5027 ????????????????????})28 ????????????????????.delay(2000)29 ????????????????????.animate({30 ????????????????????????height:30031 ????????????????????})32 ????????????????????.animate({33 ????????????????????????width:40034 ????????????????????})35 ????????})36 ????})37 </script>38 </body>39 </html>

代码示例02

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>Title</title> 6 ????<style> 7 ????????div{ 8 ????????????width: 50px; 9 ????????????height: 50px;10 ????????????background: green;11 ????????}12 ????</style>13 </head>14 <body>15 <div>16 </div>17 <button>按钮</button>18 <script src="js/jquery-3.2.1.js"></script>19 <script>20 ????$(function () {21 ????????//01 当页面加载完毕就执行动画效果22 ????????$("div").animate({23 ????????????????????width:"400px"24 ????????????????},2000)25 ????????????????.animate({26 ????????????????????height:20027 ????????????????},1000)28 ????????????????.delay(1000)29 ????????????????.animate({30 ????????????????????height:5031 ????????????????})32 ????????????????.animate({33 ????????????????????width:5034 ????????????????})35 ????????//02 当点击按钮的时候停止动画36 ????????$("button").click(function () {37 ????????????//01 没有传递参数:结束当前的动画,继续执行后面的动画38 ????????????//$("div").stop();39 ????????????//02 传递1参数:40 ????????????// true:所有的动画全部结束41 ????????????// false:结束当前的动画,继续执行后面的动画42 ????????????//$("div").stop(true);43 ????????????//$("div").stop(false);44 ????????????//03 传递2参数:45 ????????????//true true : 立刻结束到达当前动画的终点,后面的不再执行46 ????????????//true false:所有的动画全部结束47 ????????????//false false:结束当前的动画,继续执行后面的动画48 ????????????//false true : 立刻结束到达当前动画的终点,后面的继续执行49 ????????????//$("div").stop(true,true);50 ????????????//$("div").stop(true,false);51 ????????????//$("div").stop(false,false);52 ????????????$("div").stop(false,true);53 ????????})54 ????})55 </script>56 </body>57 </html>
  • Posted by 博客园·文顶顶 ~ 花田半亩
  • 联系作者 简书·文顶顶 新浪微博·文顶顶
  • 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | 文顶顶

jQuery系列 第五章 jQuery框架动画特效

原文地址:https://www.cnblogs.com/wendingding/p/8856708.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved