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 相关文章推荐
jquery判断单个复选框是否被选中的代码
Sep 03 Javascript
改写一个简单的菜单 弹性大小
Dec 02 Javascript
js确认删除对话框适用于a标签及submit
Jul 10 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
Oct 23 Javascript
jQuery实现跨域
Feb 03 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
javascript中new Array()和var arr=[]用法区别
Dec 01 Javascript
收集前端面试题之url、href、src
Mar 22 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
php xhprof使用实例详解
2019/04/15 PHP
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
在Python中编写数据库模块的教程
2015/04/29 Python
Python字符串详细介绍
2015/05/09 Python
用python生成1000个txt文件的方法
2018/10/25 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
python pandas时序处理相关功能详解
2019/07/03 Python
Python绘图实现显示中文
2019/12/04 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
tensorflow 环境变量设置方式
2020/02/06 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
写得不错的求职信范文
2014/07/11 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers