css animations 主要有两块构成,那么是哪两块呢?
  1. keyframes : 定义了什么阶段展示什么样的动画
  2. animation 属性 :把动画挂载到一个具体的dom上,并且定义如何动起来;
 

keyframes

keyframes 是动画的基础,它定义了动画在各个阶段的时间线上应该如何呈现。每一个 @keyframes 都应该包括下面:
  1. 动画的名字, 比如说, @ keyframes bounceIn
  2. 动画的各个阶段,0% 是最开始的阶段, 100%是最终的阶段,中间可以添加多个中间状态
  3. css的属性,在动画的各个阶段,css的属性分别是什么样的
下面是一个简单的 @keyframes :
  1. @keyframes bounceIn {
  2. 0%{
  3. transform: scale(0.1);
  4. opacity:0;
  5. }
  6. 60%{
  7. transform:scale(1.2);
  8. opacity:1
  9. }
  10. 100%{
  11. transform: scale(1);
  12. opacity:1
  13. }
  14. }
(如果你还对 css 强大的 transform 属性不熟悉的话,可以看我另外关于 transform 总结的教程, 强大的transform 配合 animation 简直就是魔法般的效果)
 

animation 属性

我们使用 @keyframes 声明好了一个动画, 但是还不够,我们要使用 animation 属性
animation 属性做了两件事情:
  1. 把动画添加到了你想添加的那个元素
  2. 定义动画是如何动起来的
所以,下面两个属性必须要添加到 dom 节点上: animation-name , animation-duration;
  1. div {
  2. animation-duration:2s;
  3. animation-name: bounceIn;
  4. }
为了更简洁的语法,我们推荐使用 合写 的写法:
  1. div {
  2. animation: bouncIn 2s;
  3. }
采用 合写 的写法,所有的动画属性,我们都要挂到 animation 这个属性下面:
  1. animation:[animation-name][animation-duration][animation-timing-function]
  2. [animation-delay][animation-iteration-count][animation-direction]
  3. [animation-fill-mode][animation-play-state];
请记住:要让动画正常的动起来,要按照上面的顺序来写,并且前两个属性是一定要有的。
 
为了构建更复杂的动画,需要再 将要运动的物体上 添加自定义属性:
animation-timing-function
设置缓动:ease( 默认 ) | ease-in | ease-out   
animation-delay
动画延迟了多少时间: 0 s( 默认 )
animation-interaction-count
动画要循环多少次:#(默认是1) | infinite | initial 
Animation-direction
动画要正着播,倒着播:normal( 默认 ) | reverse | alternate | alternate - reverse ( 后面两个的在animation-interaction-count>1的情况下起作用 )
animation-fill-mode
none(默认) | forwards | backwards | both
animation-play-state
running | pause  暂停后开始,是从之前位置无缝链接;
(animation-play-state :  不可以在animation 中简写,需要单独的加在要运动的动画身上)
 
你也可以在一个dom元素上增加多个 动画,他们之间只需要用 逗号隔开:
  1. .div {
  2. animation: slideIn 2s, rotate 1.75s;
  3. }
 
 
 
animation 和 transition 的效果是很像的;
animation 是 定义一个动画,然后挂载到要运动的物体身上;
transition 是把transition 的属性写在要变化的物体身上,然后hover的时候改变样式;
transition可以当成是只有两帧的animation;
 
transition 和 transfrom 单词长的是很像的;
transfrom 作用是 2d 3d 的转换,
transfrom的主要方法有:
  1. -webkit-transform :  translate ( 10px , 20px  )       // 常用在绝对定位的水平居中,垂直居中;
  2. -webkit-transform : rotate( 12deg )
  3. -webkit-transform : scale ( 1,3  )  宽度放大1倍,高度放大3倍
  4. -webkit-transform :  skew(30deg,60deg) 沿x轴旋转的角度,沿y轴旋转的角度
  5. transform-origin :  变换的基点
 
 
 
 
 

学习css3中的动画的更多相关文章

  1. CSS3中的动画功能(一)

    css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ...

  2. css3中的动画功能

    直接用我的一段代码演示下css3中实现动画效果的事例,让一个div自动旋转起来 代码如下: <!doctype html> <html lang="en"> ...

  3. CSS3中的动画

    CSS3中的动画包括两种: Transition(过渡) Animation(动画) 这两种方法都可以让元素动起来,功能类似,但是稍有区别: Transition只定义某一个元素的开始状态和结束状态 ...

  4. CSS3中的动画效果-------Day72

    还记得么,在前面也曾实现过"仅仅用css让div动起来",还记得当时是怎么实现的么,是的,transition,针对的也比較局限,仅仅有旋转角度啊,长宽啊之类的,所以说,与其说是动 ...

  5. CSS3中的动画效果记录

    今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...

  6. css3中的动画效果

    css3中的animation属性动画效果代码如下: <!DOCTYPE html> <html lang="en"> <head> <m ...

  7. CSS3中的动画功能(二)

    上一篇文章讲解了css3动画中的一个即transitions,那么今天来说说另外一个animations.和transitions不同的是animations可以定义多个关键帧以及每个关键帧中元素的属 ...

  8. css3中的动画 @keyframes animation

    动画的运用比较重要.接下来我希望针对我自己学习遇到的问题,再总结一下这个属性的使用方法. 创建一个动画: @keyframes 动画名 {样式} 引用自己创建的动画: animation:动画名  时 ...

  9. 第100天:CSS3中animation动画详解

    CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: 一.Animation定义动画 CSS3的Animation是由“keyframes”这个属性来 ...

随机推荐

  1. laravel安装插件laravel-ide-helper

    1.插件位置laravel-ide-helper https://github.com/barryvdh/laravel-ide-helper 2.首先改变镜像源为国内的镜像源 P { margin- ...

  2. Java原子变量

    实现全局自增id最简单有效的方式是什么?java.util.concurrent.atomic包定义了一些常见类型的原子变量.这些原子变量为我们提供了一种操作单一变量无锁(lock-free)的线程安 ...

  3. Android批量验证渠道、版本号

    功能:可校验单个或目录下所有apk文件的渠道号.版本号使用说明:1.copy需要校验的apk文件到VerifyChannelVersion目录下2.双击运行VerifyChannelVersion.b ...

  4. DIV+CSS清除浮动方法

    一.为什么要清除浮动? 1>父元素在未定义高的情况下,由于子元素全部浮动脱离文本流,而造成父元素高的塌陷(正常情况下,父元素的高是由未浮动的子元素撑起来) 2>因为部分子元素的而浮动,脱离 ...

  5. phpcms课堂笔记

    获取父分类下面的子分类 {loop subcat(77) $k $v}{php $subcatid[] = $k;}{/loop}<?php $subcatid = implode(',', $ ...

  6. unity 看到Sphere内部,通过Sphere播放全景视频时候遇到的问题

    Unity创建一Sphere默认是看不到球体内部的,所以需要用 Cull Front  修改剔除的方向,这就会带来一个新的问题,所播放的视频是像镜子一样翻转着的,所以要改变它的UV坐标使其翻转过来 f ...

  7. JS的内置对象以及JQuery中的部分内容

     [js中的数组]              1  数组的概念:可以再内存中连续存储的多个有序元素的结构                元素的顺序:称为下标,通过下标查找对应元素.           ...

  8. .NET枚举类型转为List类型

    如图所示这个竞卖状态,原先是在前端界面通过html代码写死的几个状态,现在需要改为动态加载.这个几个状态是定义的枚举类型. 1:定义一个枚举类型 /// <summary>    /// ...

  9. Websphere(was)与Weblogic部署EJB的注意项

    复杂的故事简单说,复杂的问题简单做. EJB容器 简介 本节讲解EJB项目在Weblogic和Was上的部署需要注意设置的一些内容.不同的中间件对EJB支持方式不一样,所以配置的原理也略有差异. 关键 ...

  10. 前端JS来控制选中的项

    < script type = "text/javascript" > function change(){ document.getElementById(" ...