CSS3中的动画
CSS3中的动画包括两种:
- Transition(过渡)
- Animation(动画)
这两种方法都可以让元素动起来,功能类似,但是稍有区别:
- Transition只定义某一个元素的开始状态和结束状态
- Animation除了开始和结束状态之外,还可以定义中间任意时间点关键帧的状态
剩下的内容就是CSS3完成任意两个时间区间内进行补间动画,达到平滑过渡的效果。
Transition
transition的语法为:
transition:transition-property, transition-duration, transition-timing-function, transition-delay 翻译成中文就是:
transition: 变换属性, 持续时间, 速率变化, 变换延迟
- transition-property:指定元素哪些属性改变时进行过渡。当它为all时,所有可过渡的属性变化时都会触发元素过渡效果,当它为none时,停止所有的过渡。
 所谓可过渡属性,是指在动画过程中,能够转化为某些类型的属性,这些类型包括color,length,percentage,number等等。比如某一个元素的margin,height,border-width这三个属性,在动画过程中都是以length的类型进行改变的,它们都是可过渡属性,且动画时的类型为length
 元素属性和过渡类型的对应关系在:http://www.w3.org/TR/css3-transitions/#properties-from-css-
- transition-duration:持续时间,可以为秒(s)或者毫秒(ms),默认为0,没有过渡效果
- transition-timing-function:过渡时间函数,预设的值有:
- ease: 逐渐变慢,等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0).
- linear: 匀速,等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0).
- ease-in: 加速,等同于贝塞尔曲线(0.42, 0, 1.0, 1.0).
- ease-out: 减速,等同于贝塞尔曲线(0, 0, 0.58, 1.0).
- ease-in-out: 加速然后减速,等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
- cubic-bezier:贝塞尔曲线控制四个点:起始点、终止点和两个相互分离的中间点。在我们这里,起始点为(0,0),终止点为(1.0,1.0),我们可以改变的就是两个锚点,用来控制曲线的弯曲程度。可以在http://cubic-bezier.com 网站上进行演示,右边是标准的几个过渡函数,通过更改url的hash值,可以准确改变贝塞尔函数
  
- transition-delay:等待多少时间之后进行转换,默认为0
transition的浏览器兼容性为:

由于浏览器有些不支持标准的W3C写法,因此最好加上各自的前缀,将标准写法放到最后。
p {
  -webkit-transition: all .5s ease-in-out 1s;
  -o-transition: all .5s ease-in-out 1s;
  -moz-transition: all .5s ease-in-out 1s;
  transition: all .5s ease-in-out 1s;
}
总之,诸如focus、hover、鼠标点击事件或其他js控制等会改变元素的属性,如果该元素在css中定义了transition,且被改变的属性是可过渡的属性,那么就会触发过渡效果。
Animation
如前所述,animation动画可以在不同的时间段设置关键帧。关键帧可以使用@keyframes进行定义:
 @keyframes IDENT {
     from {
       Properties:Properties value;
     }
     Percentage {
       Properties:Properties value;
     }
     to {
       Properties:Properties value;
     }
   }
或者写成百分比:
  @keyframes IDENT {
      0% {
         Properties:Properties value;
      }
      Percentage {
         Properties:Properties value;
      }
      100% {
         Properties:Properties value;
      }
    }
 
如定义了一个名字叫做wobble的关键帧:
@-webkit-keyframes 'wobble' {
     0% {
        margin-left: 100px;
        background: green;
     }
     40% {
        margin-left: 150px;
        background: orange;
     }
     60% {
        margin-left: 75px;
        background: blue;
     }
     100% {
        margin-left: 100px;
        background: red;
     }
  }
该关键帧分别定义了0%,40%,60%和100%这四个点的元素状态,主要改变的是margin-left和背景色这两个属性。
接下来就在animation属性中使用该关键帧,animation涉及到的属性有:
- animation-name: 动画名字,可以是我们之前定义的keyframe
- animation-duration: 动画播放时长
- animation-timing-function: 动画变换速率
- animation-delay: 开始动画延时
- animation-iteratoration-count: 动画播放循环次数(1还是infinite等)
- animation-direction: 播放方向(向前还是向后)
animation属性也可以简写,如下图,不过属性太多,不太好记住顺序,我反正还是用分开写的方式。

一些animation的例子可以看:http://www.justinaguilar.com/animations/
CSS3中的动画的更多相关文章
- CSS3中的动画功能(一)
		css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ... 
- css3中的动画功能
		直接用我的一段代码演示下css3中实现动画效果的事例,让一个div自动旋转起来 代码如下: <!doctype html> <html lang="en"> ... 
- CSS3中的动画效果记录
		今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ... 
- css3中的动画效果
		css3中的animation属性动画效果代码如下: <!DOCTYPE html> <html lang="en"> <head> <m ... 
- CSS3中的动画效果-------Day72
		还记得么,在前面也曾实现过"仅仅用css让div动起来",还记得当时是怎么实现的么,是的,transition,针对的也比較局限,仅仅有旋转角度啊,长宽啊之类的,所以说,与其说是动 ... 
- CSS3中的动画功能(二)
		上一篇文章讲解了css3动画中的一个即transitions,那么今天来说说另外一个animations.和transitions不同的是animations可以定义多个关键帧以及每个关键帧中元素的属 ... 
- 学习css3中的动画
		css animations 主要有两块构成,那么是哪两块呢? keyframes : 定义了什么阶段展示什么样的动画 animation 属性 :把动画挂载到一个具体的dom上,并且定义如何动起来: ... 
- 第100天:CSS3中animation动画详解
		CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: 一.Animation定义动画 CSS3的Animation是由“keyframes”这个属性来 ... 
- css3中的动画处理
		动画--过渡属性 div { width: 200px; height: 200px; background: red; margin: 20px auto; /* -webkit-transitio ... 
随机推荐
- WSGI、flup、fastcgi、web.py、uwsgi
			================== 网上别人的理解 =================== http://www.douban.com/note/13508388/ 1.Apache/ ... 
- iOS动画的要素:CALayer维护数据模型和图片,沟通了CPU和GPU--视图中与图形绘制相关的功能
			1)iOS动画的模型:三层树模型: CALayer维护数据模型和图片,沟通了CPU和GPU:数据模型和图片本尊有CPU生成和维护:图片动画由GPU合成和呈现: https://developer.ap ... 
- BZOJ1770:[USACO]lights 燈(高斯消元,DFS)
			Description 貝希和她的閨密們在她們的牛棚中玩遊戲.但是天不從人願,突然,牛棚的電源跳閘了,所有的燈都被關閉了.貝希是一個很膽小的女生,在伸手不見拇指的無盡的黑暗中,她感到驚恐,痛苦與絕望. ... 
- javascript中的回调函数(callback)        (转载)
			代码如下: app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(er ... 
- java中io创建文件和读取文件
			简单了解IO流:https://www.cnblogs.com/weibanggang/p/10034325.html package com.wbg.iodemo1128; import java. ... 
- 关于ucos操作系统中如何从邮箱中提取出消息
			问题提出? 定义两个任务,task1,task2,想task1用OSMboxPost,task2用OSMboxPend定义了一个邮箱Mbox1=OSMboxCreate(括号里面应该怎么写?)还有具体 ... 
- IE下页面左偏移并页头空出一行解决方法
			在其它浏览器下显示正常,包括360浏览器,在IE下,页面向左偏移,通过firebug查看,head标签为空,并且head标签里面的内容都跑到body标签内了,原因是有bom头,访问的页面或是加载,包含 ... 
- Webstorm设置代码提示
			下载路径: https://github.com/virtoolswebplayer/ReactNative-LiveTemplate 本插件可以配合Webstorm设置代码提示. Mac下安装 We ... 
- js实现点击按钮可实现编辑
			<script type="text/javascript">//修改密码//抓取到的数据 function edit() { document.getElementB ... 
- MySQL 5.7修改root密码的4种方法
			sometimes we will forget our password of root in MySQL DB server.so,there're several methods ... 
