jQuery中使用animate自定义动画的方法


Posted in Javascript onMay 29, 2016

动画 animate()

01.animate()方法的简单使用

有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就是强大的animate方法了。

操作一个元素执行3秒的淡入动画,对比下一下2组动画设置的区别。

$(elem).fadeOut(3000) 
$(elem).animate({ 
opacity:0
},3000)

显而易见,animate方法更加灵活了,可以精确的控制样式属性从而执行动画。

语法:

1 .animate( properties [, duration ] [, easing ] [, complete ] )

2 .animate( properties, options )

.animate()方法允许我们在任意的数值的CSS属性上创建动画。2种语法使用,几乎差不多了,唯一必要的属性就是一组CSS属性键值对。这组属性和用于设置.css()方法的属性键值对类似,除了属性范围做了更多限制。第二个参数开始可以单独传递多个实参也可以合并成一个对象传递了。

参数分解:

properties:一个或多个css属性的键值对所构成的Object对象。要特别注意所有用于动画的属性必须是数字的,除非另有说明;这些属性如果不是数字的将不能使用基本的jQuery功能。比如常见的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing等等这些都是能产生动画效果的。background-color很明显不可以,因为参数是red或者GBG这样的值,非常用插件,否则正常情况下是不能只能动画效果的。注意,CSS 样式使用 DOM 名称(比如 "fontSize")来设置,而非 CSS 名称(比如 "font-size")。

特别注意单位,属性值的单位像素(px),除非另有说明。单位em 和 %需要指定使用

.animate({
left: , 
width: 'px' 
opacity: 'show', 
fontSize: "em",
}, );

除了定义数值,每个属性能使用'show', 'hide', 和 'toggle'。这些快捷方式允许定制隐藏和显示动画用来控制元素的显示或隐藏

.animate({
width: "toggle"
});

如果提供一个以+= 或 -=开始的值,那么目标值就是以这个属性的当前值加上或者减去给定的数字来计算的

.animate({ 
left: '+50px'
}, "slow");

duration:时间

动画执行的时间,持续时间是以毫秒为单位的;值越大表示动画执行的越慢,不是越快。还可以提供'fast' 和 'slow'字符串,分别表示持续时间为200 和 600毫秒。
easing动画运动的算法:

jQuery库中是默认的时调用 swing。在一个恒定的速度进行动画,如果需要其他的动画算法,请查找相关的插件

complete回调

动画完成时执行的函数,这个可以保证当前动画确定完成后发会触发

02.animate() 方法来依次执行多个动画

animate在执行动画中,如果需要观察动画的一些执行情况,或者在动画进行中的某一时刻进行一些其他处理,我们可以通过animate的提供第二种设置语法,传递一个对象参数,可以拿到动画执行状态一些通知。

.animate( properties, options )

options参数

duration - 设置动画执行的时间
easing - 规定要使用的 easing 函数,过渡使用哪种缓动函数
step:规定每个动画的每一步完成之后要执行的函数
progress:每一次动画调用的时候会执行这个回调,就是一个进度的概念
complete:动画完成回调

如果多个元素执行动画,回调将在每个匹配的元素上执行一次,不是作为整个动画执行一次

列出常用的方式

$('#elem').animate({
width: 'toggle', 
height: 'toggle'
}, {
duration: ,
specialEasing: {
width: 'linear',
height: 'easeOutBounce'
},
complete: function() {
$(this).after('<div>Animation complete.</div>');
}
});

调用animate()方法可以创建自定义动画效果,它的调用格式为:

$(selector).animate({params},speed,[callback])

其中,params参数为制作动画效果的CSS属性名与值,speed参数为动画的效果的速度,单位为毫秒,可选项callback参数为动画完成时执行的回调函数名。

例如,调用animate()方法以由小到大的动画效果显示图片,如下图所示:

<body>
<h>制作简单的动画效果</h>
<img src="images/.png" alt=""/>
<div id="tip"></div>
<script type="text/javascript">
$(function() {
$('img').animate({
width: 'px';
height:'px'
}, , function() {
$("#tip").html('执行完成!');
});
})
</script>
</body>

在浏览器中显示的效果:

jQuery中使用animate自定义动画的方法

从图中可以看出,调用animate()方法,以渐渐放大的动画效果显示图片元素,当动画执行完成后,通过回调函数在页面的<div>元素中显示“执行完成!”的字样。

Javascript 相关文章推荐
JavaScript中的Screen屏幕对象
Jan 16 Javascript
页面实时更新时间的JS实例代码
Dec 18 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
第六篇Bootstrap表格样式介绍
Jun 21 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
Dec 30 Javascript
jQuery使用方法
Feb 04 Javascript
一道面试题引发的对javascript类型转换的思考
Mar 06 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
Vue 实现分页与输入框关键字筛选功能
Jan 02 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 #Javascript
js剪切板应用clipboardData实例解析
May 29 #Javascript
js实现可控制左右方向的无缝滚动效果
May 29 #Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 #Javascript
js省市县三级联动效果实例
Apr 15 #Javascript
js实现精确到秒的倒计时效果
May 29 #Javascript
解读Bootstrap v4 sass设计
May 29 #Javascript
You might like
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php常量详细解析
2015/10/27 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
颁奖晚会主持词
2014/03/25 职场文书
大学学习计划书范文
2014/05/02 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
高中生毕业评语
2014/12/30 职场文书
公司承诺函范文
2015/01/21 职场文书
综合办公室岗位职责
2015/04/11 职场文书
摩登时代观后感
2015/06/03 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python
Elasticsearch 配置详解
2022/04/19 Java/Android