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一点特殊用法
May 28 Javascript
javascript document.execCommand() 常用解析
Dec 14 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
浅析javascript中函数声明和函数表达式的区别
Feb 15 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 Javascript
AngularJS执行流程详解
Feb 17 Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
WEEX环境搭建与入门详解
Oct 16 Javascript
关于vue-router-link选择样式设置
Apr 30 Vue.js
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中批量替换文件名的实现代码
2011/07/20 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
php和nginx交互实例讲解
2019/09/24 PHP
JQuery伸缩导航练习示例
2013/11/13 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
微信小程序日历效果
2018/12/29 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
上班迟到检讨书
2014/01/10 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
单位单身证明样本
2014/10/11 职场文书
关于运动会的广播稿
2015/08/19 职场文书
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS