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 相关文章推荐
JS嵌套函数调用上下文的问题解决
Mar 26 Javascript
javascript操作excel生成报表示例
May 08 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
jQuery对象初始化的传参方式
Feb 26 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
javascript基础知识
Jun 07 Javascript
javascript事件冒泡简单示例
Jun 20 Javascript
AngularJS入门教程之ng-checked 指令详解
Aug 01 Javascript
在JSP中如何实现MD5加密的方法
Nov 02 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
vue cli安装使用less的教程详解
Jul 12 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 和 MySQL 基础教程(三)
2006/10/09 PHP
一个程序下载的管理程序(四)
2006/10/09 PHP
PHP4引用文件语句的对比
2006/10/09 PHP
深入php self与$this的详解
2013/06/08 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
js实现抽奖功能
2020/11/24 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
深入理解Django的中间件middleware
2018/03/14 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python采集微信公众号文章
2018/12/20 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
python time()的实例用法
2020/11/03 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
自荐书模板
2013/12/15 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python