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 相关文章推荐
JavaScript 继承详解(四)
Jul 13 Javascript
jQuery常见开发技巧详细整理
Jan 02 Javascript
简单的js表单验证函数
Oct 28 Javascript
JavaScript中继承用法实例分析
May 16 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
基于JQuery实现图片轮播效果(焦点图)
Feb 02 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
[jQuery] 事件和动画详解
Mar 05 jQuery
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 Javascript
利用JavaScript写一个简单计算器
Nov 27 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使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
javascript里的条件判断
2007/02/27 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
python操作xml文件详细介绍
2014/06/09 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
python入门之井字棋小游戏
2020/03/05 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
建筑自我鉴定
2013/10/19 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
美德少年事迹材料
2014/01/23 职场文书
爱心倡议书范文
2014/05/12 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
2015年教学工作总结
2015/04/02 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA