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 相关文章推荐
当json键为数字时的取值方法解析
Nov 15 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
js读取csv文件并使用json显示出来
Jan 09 Javascript
jQuery简单实现遍历数组的方法
Apr 14 Javascript
jQuery代码实现实时获取时间
Jan 29 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
Oct 26 Javascript
微信小程序request请求封装,验签代码实例
Dec 04 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
微信小程序实现天气预报功能(附源码)
Dec 10 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
php5中类的学习
2008/03/28 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
js的回调函数详解
2015/01/05 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
Python Matplotlib库入门指南
2015/05/18 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
django使用xadmin的全局配置详解
2019/11/15 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
网络技术支持面试题
2013/04/22 面试题
兼职学生的自我评价
2013/11/24 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
人力资源求职信
2014/05/25 职场文书
小学校本培训方案
2014/06/06 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
高考升学宴答谢词
2015/01/20 职场文书