当前位置:首页 > 日记 > 正文

jQuery动画_动力节点节点Java学院整理

jQuery动画_动力节点节点Java学院整理

用JavaScript实现动画,原理非常简单:我们只需要以固定的时间间隔(例如,0.1秒),每次把DOM元素的CSS样式修改一点(例如,高宽各增加10%),看起来就像动画了。

但是要用JavaScript手动实现动画效果,需要编写非常复杂的代码。如果想要把动画效果用函数封装起来便于复用,那考虑的事情就更多了。

使用jQuery实现动画,代码已经简单得不能再简化了:只需要一行代码!

让我们先来看看jQuery内置的几种动画样式:

show / hide

直接以无参数形式调用show()和hide(),会显示和隐藏DOM元素。但是,只要传递一个时间参数进去,就变成了动画:

var div = $('#test-show-hide');div.hide(3000); // 在3秒钟内逐渐消失

时间以毫秒为单位,但也可以是'slow','fast'这些字符串:

var div = $('#test-show-hide');div.show('slow'); // 在0.6秒钟内逐渐显示

toggle()方法则根据当前状态决定是show()还是hide()。

slideUp / slideDown

你可能已经看出来了,show()和hide()是从左上角逐渐展开或收缩的,而slideUp()和slideDown()则是在垂直方向逐渐展开或收缩的。

slideUp()把一个可见的DOM元素收起来,效果跟拉上窗帘似的,slideDown()相反,而slideToggle()则根据元素是否可见来决定下一步动作:

var div = $('#test-slide');div.slideUp(3000); // 在3秒钟内逐渐向上消失

fadeIn / fadeOut

fadeIn()和fadeOut()的动画效果是淡入淡出,也就是通过不断设置DOM元素的opacity属性来实现,而fadeToggle()则根据元素是否可见来决定下一步动作:

var div = $('#test-fade');div.fadeOut('slow'); // 在0.6秒内淡出

自定义动画

如果上述动画效果还不能满足你的要求,那就祭出最后大招:animate(),它可以实现任意动画效果,我们需要传入的参数就是DOM元素最终的CSS状态和时间,jQuery在时间段内不断调整CSS直到达到我们设定的值:

var div = $('#test-animate');div.animate({  opacity: 0.25,  width: '256px',  height: '256px'}, 3000); // 在3秒钟内CSS过渡到设定值

animate()还可以再传入一个函数,当动画结束时,该函数将被调用:

var div = $('#test-animate');div.animate({  opacity: 0.25,  width: '256px',  height: '256px'}, 3000, function () {  console.log('动画已结束');  // 恢复至初始状态:  $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px');});

实际上这个回调函数参数对于基本动画也是适用的。

有了animate(),你就可以实现各种自定义动画效果了:

animate()

串行动画

jQuery的动画效果还可以串行执行,通过delay()方法还可以实现暂停,这样,我们可以实现更复杂的动画效果,而代码却相当简单:

var div = $('#test-animates');// 动画效果:slideDown - 暂停 - 放大 - 暂停 - 缩小div.slideDown(2000)  .delay(1000)  .animate({    width: '256px',    height: '256px'  }, 2000)  .delay(1000)  .animate({    width: '128px',    height: '128px'  }, 2000);}</script>

因为动画需要执行一段时间,所以jQuery必须不断返回新的Promise对象才能后续执行操作。简单地把动画封装在函数中是不够的。

为什么有的动画没有效果

你可能会遇到,有的动画如slideUp()根本没有效果。这是因为jQuery动画的原理是逐渐改变CSS的值,如height从100px逐渐变为0。但是很多不是block性质的DOM元素,对它们设置height根本就不起作用,所以动画也就没有效果。

此外,jQuery也没有实现对background-color的动画效果,用animate()设置background-color也没有效果。这种情况下可以使用CSS3的transition实现动画效果。

相关文章

前端框架学习总结之Angular、React

前端框架学习总结之Angular、React

学习,前端框架,详解,电脑软件,React,近几年前端的技术发展很快,细分下来,主要可以分成四个方面: 1.开发语言技术,主要是ES6&7,coffeescript,typescript等; 2.开发框架,如Angular,React,Vue.js,Angular2等; 3.开发工具的丰富和前端工…

ppt2007设置定时循环播放

ppt2007设置定时循环播放

设置,循环播放,方法,电脑软件,  平时使用课件时需要PPT以幻灯片的方式放映图片,这种放映方式在PPT上能够自由设置比图片软件好得多。那么如何ppt2007设置定时循环播放呢?接下来小编带大家了解一下吧。ppt2007设置定时循环播放的方法先打开…

js实现文字列表无缝滚动效果

js实现文字列表无缝滚动效果

文字,滚动效果,列表,电脑软件,js,本文实例为大家分享了js文字列表无缝滚动的具体代码,供大家参考,具体内容如下HTML代码:<div id="rule"> <div class="list" id="list"> <p>用户185****0000 获得XXX优惠券</p> …

Excel中进行输入数字变成E+的解决

Excel中进行输入数字变成E+的解决

输入,数字,步骤,解决方法,电脑软件,  对于很多人来说,并不需要经常使用Excel的,有些人刚接触excel发现输入一些挺长的数字比如学号,工号,身份证等就变成了E+的形式了。今天,小编就教大家在Excel中进行输入数字变成E+的解决方法。Excel中进行输…

excel设置标题栏为常见的方法步骤

excel设置标题栏为常见的方法步骤

方法,设置,标题栏,步骤,常见,  Excel中的表格拥有这庞大的数据,在对比数据的时候经常需要看到标题栏进行对比,设置标题栏为常见具体该如何进行操作呢?下面是由小编分享的excel设置标题栏为常见的方法,以供大家阅读和学习。excel设置标题栏为…

excel2010分类汇总批量合并相同单

excel2010分类汇总批量合并相同单

方法,分类,合并,批量,单元格,  在Excel中录入好数据以后经常需要用到分类汇总进行批量合并相同单元格,这个要求改如何实现呢?接下来是小编为大家带来的excel2010分类汇总批量合并相同单元格的方法,供大家参考。excel2010分类汇总批量合并相…

在Word2007文档中怎么插入表格题注

在Word2007文档中怎么插入表格题注

文档,表格,题注,电脑软件,  在Word2007文档中,用户可以通过插入表格题注为表格编号,从而更清晰规范地管理和查找表格。为表格插入题注在Word文档中含有大量表格的情况下尤其适用。以下是小编为您带来的关于在Word2007文档中插入表格题注,希…

js求数组中全部数字可拼接出的最大

js求数组中全部数字可拼接出的最大

示例代码,数字,整数,组中,电脑软件,前言最近在工作碰到一个问题,就是用javascript求数组中所有数字能拼接出的最大整数,数组的每一项为单独的拼接项,不能再拆开,例如[2,34]中2和34分别为要被拼接的数字,而不是说34还能继续拆分为3和4。具体需求…

怎么用PPT来制作海报用PPT来制作海

怎么用PPT来制作海报用PPT来制作海

步骤,教程,海报,电脑软件,PPT,  我们经常会看到各种炫酷的海报,告示着我们各种活动的召开时间和地点...如何制作一张属于自己的海报呢? 其实用PPT就能帮我们实现。下面小编来告诉你怎么做吧。▼▼▼了解更多PPT的操作技巧,欢迎点击▼▼▼※…

ppt标题怎么设置动画效果ppt标题设

ppt标题怎么设置动画效果ppt标题设

设置,动画效果,步骤,方法,标题,  在制作ppt时为了视觉效果和表达起来比较形象,我们会把ppt的标题和内容都设置动画效果。下面小编教你具体怎么做吧。ppt标题设置动画效果的步骤首先新建一个ppt输入你要输入的标题和内容或者打开一个已经完…

excel制作成绩单的教程excel怎么制

excel制作成绩单的教程excel怎么制

教程,成绩单,电脑软件,excel,strong,  在Excel中很多时候都需要制作成绩单,或许还有朋友不知道该如何制作成绩单,如果不懂得如何制作成绩单的朋友不妨学习学习,下面是小编带来的关于excel制作成绩单的教程,希望阅读过后对你有所启发!excel制…

来一场说走就走的旅行幸福的QQ签名

来一场说走就走的旅行幸福的QQ签名

走就走,旅行,简单,个性签名,集锦,  有人说,一生中至少要有两次冲动,一次为奋不顾身的爱情,一次为说走就走的旅行。来一场说走就走的旅行幸福的QQ签名有哪些的呢?本文是小编整理来一场说走就走的旅行幸福的QQ签名的资料,仅供参考。来一场说…