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 相关文章推荐
jQuery 判断元素上是否绑定了事件
Oct 28 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
Mar 25 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
vue实现鼠标经过动画
Oct 16 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
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&amp;mysql 日期操作小记
2012/02/27 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
用Python实现一个简单的线程池
2015/04/07 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python笔记之facade模式
2019/11/20 Python
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
个人简历中的自我评价怎么写
2014/01/26 职场文书
单位委托书怎么写
2014/09/21 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL