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 相关文章推荐
extjs 04_grid 单击事件新发现
Nov 27 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
jQuery中replaceAll()方法用法实例
Jan 16 Javascript
JQuery datepicker 用法详解
Dec 25 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
jQuery 更改checkbox的状态,无效的解决方法
Jul 22 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
Mar 28 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
Sep 18 Javascript
在layui框架中select下拉框监听更改事件的例子
Sep 20 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
文件上传的实现
2006/10/09 PHP
我的论坛源代码(四)
2006/10/09 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
Python深入学习之内存管理
2014/08/31 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
python 日期排序的实例代码
2019/07/11 Python
python 导入数据及作图的实现
2019/12/03 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
机电专业个人求职信范文
2013/12/30 职场文书
门诊手术室工作制度
2014/01/30 职场文书
婚礼秀策划方案
2014/05/19 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Vue的生命周期一起来看看
2022/02/24 Vue.js