jQuery Animation实现CSS3动画示例介绍


Posted in Javascript onAugust 14, 2013

jQuery Animation的工作原理是通过将元素的CSS样式从一个状态改变为另一个状态。CSS属性值是逐渐改变的,这样就可以创建动画效果。只有数字值可创建动画(比如 "margin:30px")。字符串值无法创建动画(比如 "background-color:red")。详细用法请参考jQuery 效果 - animate()方法和官方教程。

像CSS3好多效果因为不是数值的,所以是没有办法直接通过animate()方法实现的。如translate(), rotate(), scale(), skew(), matrix(), rotateX(), rotateY()等方法,这些方法的一个特点就是它们的值是字符和数字混合在一起的。因此我们是不可以直接用animate()方法来动态地修改它们的值来实现动画的效果。

如果我们自己用JavaScript实现CSS3动画,那么我们只能自已通过setInterval()方法来实现,实现起来比较复杂。其实animate()方法就是基于setInterval()方法进行工作的,但是可以用方便的设置动画速度,还可以设置是匀速还是变速。animate()方法的第二种用法有个step参数规定动画的每一步要执行的函数。我们可以用使用一个不影响元素效果显著的CSS值来触发animate()方法,然后在step回调函数中修改我们想要修改的值,这样就可以间接地实现动画了。请看transform例子:

<div id="box"></div>
#box { 
width:100px; 
height:100px; 
position:absolute; 
top:100px; 
left:100px; 
text-indent: 90px; 
background-color:red; 
} $('#box').animate({ textIndent: 0 }, { 
step: function(now,fx) { 
$(this).css('-webkit-transform','rotate('+now+'deg)'); 
}, 
duration:'slow' 
},'linear');

这里使用text-indent属性来触发动画,是因为我们这里没有文字,所以使用text-indent而不会影响到元素的样式效果,这里也可以用font-size等。然后使用animate()方法产生的节奏来实现动画。以此类推,我们就可以实现很多效果了。具体例子请参考这里

参考文档
•jQuery 效果 - animate() 方法
•.animate()

Javascript 相关文章推荐
jquery tablesorter.js 支持中文表格排序改进
Dec 09 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
js实现文章文字大小字号功能完整实例
Nov 01 Javascript
Javascript基础教程之JavaScript语法
Jan 18 Javascript
Javascript与jQuery方法的隐藏与显示
Jan 19 Javascript
实例讲解jquery中mouseleave和mouseout的区别
Feb 17 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
Oct 19 Javascript
AngularJS前端页面操作之用户修改密码功能示例
Mar 27 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
Apr 22 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
JavaScript中json使用自己总结
Aug 13 #Javascript
jquery自定义类似$.ajax()的方法实现代码
Aug 13 #Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 #Javascript
javascript中RegExp保留小数点后几位数的方法分享
Aug 13 #Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
Aug 13 #Javascript
jquery二级导航内容均分的原理及实现
Aug 13 #Javascript
模拟多级复选框效果的jquery代码
Aug 13 #Javascript
You might like
PHP脚本的10个技巧(7)
2006/10/09 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
mac系统安装Python3初体验
2018/01/02 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
JDO的含义
2012/11/17 面试题
C语言中break与continue的区别
2012/07/12 面试题
幼儿教师个人求职信范文
2013/09/21 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
购房协议书范本
2014/04/11 职场文书
保留意见审计报告
2015/06/05 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫