CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题。 
一、动画属性: 
动画属性包括:①animation-name,②animation-duration,③animation-timing-function, 
以下是各属性详解: 
1、animation-name:指定要绑定到选择器的关键帧的名称。 
2、animation-duration:定义动画完成一个周期需要多少秒或毫秒 
3、animation-timing-function:指定动画将如何完成一个周期。

说明
linear 动画从头到尾的速度是相同的。
ease 默认。动画以低速开始,然后加快,在结束前变慢。
ease-in 动画以低速开始。
ease-out 动画以低速结束。
ease-in-out 动画以低速开始和结束。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。
step-start 在变化过程中,都是以下一帧的显示效果来填充间隔动画
step-end 在变化过程中,都是以上一帧的显示效果来填充间隔动画
steps() 可以传入两个参数,第一个是一个大于0的整数,他是将间隔动画等分成指定数目的小间隔动画,然后根据第二个参数来决定显示效果。第二个参数设置后其实和step-start,step-end同义,在分成的小间隔动画中判断显示效果。

3.1 cubic-bezier(n,n,n,n)称为三次贝塞尔曲线,速度曲线。 
3.1.1 cubic-bezier(n,n,n,n)曲线定制网站地址:http://cubic-bezier.com/#.23,.66,.76,.52 
3.1.2 小球落地又弹起demo地址:http://codepen.io/aSuncat/pen/gwLBWz 
我不知道这个cubic-bezier曲线是怎么算出来的,难道是要靠自己试出来的嘛,不知道有没有人知道怎么算出来的。??? 
3.2 不同值之间差异demo地址(4个方块背景颜色变化):http://codepen.io/aSuncat/pen/JRRzax 
demo解析:①step-start:20%(background: green;)到60%(background: blue;)之间,显示的是60%的效果(background: blue;) 
②step-end:与step-start相反,20%(background: green;)到60%(background: blue;)之间,显示的是20%的效果(background: green;) 
③steps(1, start) 等于step-start,steps(1,end)等于step-end 
④steps函数的工作机制: 
 
4、animation-delay:属性定义动画什么时候开始。 
4.1 单位可以是秒(s)或毫秒(ms)。 
4.2 单位可以是负值,-2s表示动画立马开始,但跳过 2 秒进入动画,即前2秒的动画不执行,直接跳过前2秒进入动画。 
4.2.1 类似音波的加载效果demo地址:http://codepen.io/aSuncat/pen/ALLNpE 
demo解析:①设置同样的动画,通过animation为负值来实现不同时间段的线条的长度。 
②效果示意:
一次动画1.2s,分解为12个阶段,每个阶段0.1秒。每个阶段的第3秒线拉长。 
line1是从0进入动画。 
line2是跳过前11个阶段,即直接从11进入动画。 
依次类推… 
③写5个div时,连着写,然后自己设置margin,一方面避免代码压缩后各线条之间没有空隙,另一方面避免自己不知道5根线的总宽度。 
4.2.2 京东全民寻宝demo地址:http://codepen.io/aSuncat/pen/WGoZGm 
demo解析:①如果没有steps(8),图片会从第一行字直接跳到最后一行,中间的6行不会出现。 
5、animation-iteration-count :定义动画应该播放多少次。

说明
n 一个数字,定义应该播放多少次动画
infinite 指定动画应该播放无限次(永远)

6、animation-direction:定义是否循环交替反向播放动画。

说明
normal 默认值。动画按正常播放。
reverse 动画反向播放。
alternate 动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放。
alternate-reverse 动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。

6.1 如果动画被设置为只播放一次,该属性将不起作用。 
6.2 动画循环播放时,每次都是从结束状态跳回到起始状态,再开始播放。animation-direction属性可以重写该行为。 
7、animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

说明
none 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。
forwards 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。
backwards 动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 “normal” 或 “alternate” 时)或 to 关键帧中的值(当 animation-direction 为 “reverse” 或 “alternate-reverse” 时)。
both 动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。

7.1 默认情况下,CSS 动画在第一个关键帧播放完之前不会影响元素,在最后一个关键帧完成后停止影响元素。animation-fill-mode 属性可重写该行为。 
7.2 forwads表示让动画停留在结束状态,即停留在最后一帧。 
7.3 backwords: 
7.3.1 当 animation-direction 为 “normal” 或 “alternate” 时,回到第一帧。 
7.3.2 当 animation-direction 为 “reverse” 或 “alternate-reverse” 时,停留在最后一帧。 
8、animation-play-state:指定动画是否正在运行或已暂停。

说明
paused 指定暂停动画。
running 指定正在运行的动画。

8.1 在JavaScript中使用此属性在一个周期中暂停动画。 
8.2 线条鼠标悬停开始动画demo地址:http://codepen.io/aSuncat/pen/BLLbko 
二、动画相关 
1、animation的简写(即上述属性的介绍顺序)

animation: name duration timing-function delay iteration-count direction fill-mode play-state;
  • 1
  • 1

具体化可以记成一下形式:

animation:myAnim 1s linear 1s infinite alternate both running;
  • 1
  • 1

2、keyframes:定义动画规则,关键帧。

说明
animationname 必需的。定义animation的名称。
keyframes-selector 必需的。动画持续时间的百分比。
css-styles 必需的。一个或多个合法的CSS样式属性

2.1 写法自由 
2.1.1 指定的变化时发生时使用%,或关键字”from”和”to”,这是和0%到100%相同。以下两段代码效果相同。

@keyframes myAnim{
from { background: #f00; }
50% { background: #0f0; }
to { background: yellowgreen; }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
@keyframes myAnim{
0% { background: #f00; }
50% { background: #0f0; }
100% { background: yellowgreen; }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

2.1.2 如果省略某个状态,浏览器会自动推算中间状态。但是,为了获得最佳的浏览器支持,应该始终定义0%和100%的选择器。

@keyframes rainbow {
50% { background: orange }
to { background: yellowgreen }
} @keyframes rainbow {
to { background: yellowgreen }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.1.3 可以将多个状态写在一行。

@keyframes myAnim{
0%,100% { background: #f00; }
50% { background: #0f0;
}
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

3、浏览器前缀 
IE 10和Firefox(>= 16)支持没有前缀的animation,firefox(<16)使用-moz-前缀,因为现在firefox的版本也都不低,所以firefox都直接使用没有前缀的animation。 
而chrome,safari,opera不支持,所以必须使用webkit前缀。 
使用示例如下:

div{
animation:myAnim 1s;
-webkit-animation:myAnim 1s;
}
@keyframes myAnim{
0% { background: #f00; }
50% { background: #0f0; }
100% { background: yellowgreen; }
}
@-webkit-keyframes myAnim{
0% { background: #f00; }
50% { background: #0f0; }
100% { background: yellowgreen; }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4、定义动画时,必须定义动画的名称和动画的持续时间。如果省略持续时间,动画将无法运行,因为默认值是0。

 //http://blog.csdn.net/aSuncat/article/details/52588078

css动画-animation各个属性详解(转)的更多相关文章

  1. CSS position overflow float 属性 详解

    position  overflow float 几个属性比较容易混淆,写一段代码详解各自具体情况: position在w3school的可能取值: 值 描述 absolute 生成绝对定位的元素,相 ...

  2. CSS padding margin border属性详解

    图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层. ...

  3. CSS padding margin border属性详解【转载】

    本文转载自:http://www.cnblogs.com/linjiqin/p/3556497.html ,感谢相关博主. 图解CSS padding.margin.border属性 W3C组织建议把 ...

  4. 转-CSS padding margin border属性详解

    原文链接:http://www.cnblogs.com/linjiqin/p/3556497.html 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在 ...

  5. CSS 不换行 white-space 属性详解

    实例 规定段落中的文本不进行换行: p { white-space: nowrap } 可能的值 值 描述 normal 默认.空白会被浏览器忽略. pre 空白会被浏览器保留.其行为方式类似 HTM ...

  6. 关于css中的align-content属性详解

    align-content 作用: 会设置自由盒内部各个项目在垂直方向排列方式. 条件:必须对父元素设置自由盒属性display:flex;,并且设置排列方式为横向排列flex-direction:r ...

  7. css 12-CSS3属性详解:动画详解

    12-CSS3属性详解:动画详解 #前言 本文主要内容: 过渡:transition 2D 转换 transform 3D 转换 transform 动画:animation #过渡:transiti ...

  8. [转]CSS vertical-align属性详解 作者:黄映焜

      CSS vertical-align属性详解 posted @ 2014-08-26 17:44 黄映焜   前言:关于vertical-align属性. 实践出真知. 垂直居中. 第二种用法. ...

  9. CSS中background属性详解

    CSS背景属性 background css 说明 background-image:url(图片的网址); 背景图 background: url( 图片的网址 ); 背景 background-c ...

随机推荐

  1. JQuery EasyUI 表单

    EasyUI 创建异步提交表单 ♦ 通过使用 easyui 表单插件来改变表单为 ajax表单. 表单提交所有字段到后台服务器,服务器处理和发送一些数据返回到前端页面.我们接收返回数据,并将它显示出来 ...

  2. pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案

    文章链接:https://blog.csdn.net/weixin_38383877/article/details/81121851 这种情况其实可以不用管,是可以正常运行的: 但是,如果看着不舒服 ...

  3. activiti工作流笔记

    什么是activiti? Activiti是一个身经百战的业务流程管理引擎, 并且还是一个流程平台 为什么要用工作流引擎? 简单来说,就是为了统一管理流程业务. 想想看,如果要设计一个流程的程序,通常 ...

  4. Django 序列化-token

    幂等性 幂等性:多次操作的结果和一次操作的结果是一样的 ,put请求是幂等的 post请求不是幂等的 序列化组件 全局和局部钩子函数 异常信息抛出过程 认证 路由里的,login.as_view() ...

  5. 树·AVL树/平衡二叉树

    1.AVL树 带有平衡条件的二叉查找树,所以它必须满足条件: 1 是一棵二叉查找树 2 满足平衡条件 1.1 平衡条件: 1)严格的平衡条件:每个节点都必须有相同高度的左子树和右子树(过于严格而不被使 ...

  6. appium自动化测试等待的三种方法

    第一种  sleep(): 设置固定休眠时间.python 的 time 包提供了休眠方法 sleep() ,导入 time包后就可以使用 sleep()进行脚本的执行过程进行休眠. python # ...

  7. 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL

    办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL 总体来说,VB的EXCEL导出效率还是蛮低的,就是一个小型化的办公用品管理软件,不再优化了. 时间紧迫,就没有从头到尾的用C#编写, ...

  8. 关闭 Visual Studio 的 Browser Link 功能

    最近公司弄新项目需要用 MVC,就把 IDE 升级到了 Visual Studio 2013,在开发的时候发现有好多请求一个本地49925的端口 . 很奇怪,一开始以为是 Visual Studio ...

  9. 咸鱼入门到放弃7--jsp<二>jsp常用标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  10. UOJ#185. 【ZJOI2016】小星星 容斥原理 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ185.html 题解 首先暴力DP是 $O(3^nn^3)$ 的,大家都会. 我们换个方向考虑. 假设我们 ...