css3的动画的animation-timing-function属性定义了动画的速度曲线,一般的速度曲线大家都知道,什么ease,linear,ease-in,ease-out,还有自定义贝塞尔曲线...定义了animation-timing-function后,动画就会按照定义的曲线来执行动画.

但是除了这些值以外,animation-timing-function值还可以是steps(x,startend),它接受两个参数.下面会具体解释.

如果定义曲线,则动画帧与帧之间会流畅的进行,而定义steps,则表示直接跳跃进行,动画直接从一个帧切换到另一个帧.

举个栗子:

    <style>
div {
width:200px;
height:600px;
background:#C0DCC0;
margin-left:0;
-webkit-animation:ani 10s steps(1,end);
}
@-webkit-keyframes ani {
0% {
margin-left:0px
}
50% {
margin-left:100px
}
100% {
margin-left:200px
}
}
</style>

有这样一个div,给它定义一个动画改变margin-left值,如果把steps(,end)改成ease,就会流畅的动画,元素缓缓的移动.

但如果定义成steps(,end),那么整个动画就会分为三帧,0%,50%,100%,元素会一下子移动到100px,再一下子移动到200px,具体效果可以点击这里试一下: demo

仔细观察: 元素从0px开始,过了5s后移动到了100px,过了10s后又回到了0px...

然后把'end'改为'start'再观察: 元素从100px开始,过了5s后移动到了200px,过了10s后又回到了100px...

这就解释了steps的第二个参数startend的作用,它定义了动画开始的状态,比如这里10s,那么从0%到50%间隔是5s,而改变只需要一瞬间,那么到底是在5s的开始改变,还是在5s的结束时发生改变呢? 这就需要第二个参数去决定.

如果是start,就是在开始的时候改变,如果是end,就是在结束的时候改变.

再来看steps的第一个参数x,它是一个数字.还是拿刚才的demo举例子.在x为1的时候,5s的时间,元素从margin-left:0直接变成margin-left:100px.尝试把x改为2,可以看到,同样在5s的时间,元素先从margin-left:0,移动到了margin-left:50px的位置,然后再移动到margin-left:100px.所以,x这个参数的意思就是: 帧与帧之间的切换分为x步执行.

css3动画中的steps值详解的更多相关文章

  1. 【译】css动画里的steps()用法详解

    原文地址:http://designmodo.com/steps-c... 原文作者:Joni Trythall 我想你在css 动画里使用steps()会和我一样有很多困惑.一开始我不清楚怎样使用它 ...

  2. PHP $_FILES中error返回值详解

    $_FILES['file']['error']值 UPLOAD_ERR_OK: 0 //正常,上传成功 UPLOAD_ERR_INI_SIZE: 1 //上传文件大小超过服务器允许上传的最大值,ph ...

  3. php 文件上传$_FILES中error返回值详解

    用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...

  4. 用PHP上传文件时$_FILES中error返回值详解

    用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...

  5. 浅谈CSS3动画的凌波微步--steps()

    背景 一日敲代码的我,得到一个需求:写一个10秒的倒计时. 用JavaScript定时器麻溜写完之后,恰好同事勇司机接完水.瞟了一眼,然后凑过来说,这个用CSS3也可以写,而且一行JavaScript ...

  6. CSS3教程:pointer-events属性值详解 阻止穿透点击

    转:http://www.poluoluo.com/jzxy/201109/142876.html 在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样 ...

  7. css3中user-select的用法详解

    css3中user-select的用法详解 user-select属性是css3新增的属性,用于设置用户是否能够选中文本.可用于除替换元素外的所有元素,以下是user-select的主要用法和注意事项 ...

  8. CSS3之多列布局columns详解

    CSS3之多列布局columns详解 CSS3提供了个新属性columns用于多列布局.基本属性如下: 1. columns: <'column-width'> || <'colum ...

  9. pointer-events属性值详解

    其实早知道这个属性,但是一直没有去研究过.今天正好在twitter看到这个词,就去研究了下,正好解决了目前遇到的一个小难题,所以分享下.嗯,其实这是个比较简单的CSS3属性. 在某个项目中,很多元素需 ...

随机推荐

  1. iOS端项目注释规范附统一代码块

    代码的注释经常被人忽略,以至于在后期维护的时候较为困难.我们准备在XX项目开始之前制定一套规范的注释体系,致力于达到就算维护人员改变也能快速上手的效果. 1.属性注释 属性注释 使用 /** 注释*/ ...

  2. 初学Spring有没有适合的书

    初学者之前没有阅读java框架源码的习惯.没有阅读过源码,知道整体流程么?知道依赖注入的概念么?知道aop么?知道其中用到了哪些设计模式么?再说了,如果一上手就是源码?难道你没有注意到Spring的类 ...

  3. mac 终端启动 jboss 停留在(Starting) 不能启动joss

    今天下载了jboss,解压后发现standalone.sh,不能够在终端中执行,于是google了一下,原来是由于jdk版本的问题导致jboss一直停在调试状态(貌似是这样说的). 需要把mac系统的 ...

  4. IOS 四舍五入 进一法 去尾法

    float numberToRound; int result; numberToRound = 4.51; result = (int)roundf(numberToRound); NSLog(@& ...

  5. App开发流程之右滑返回手势功能

    iOS7以后,导航控制器,自带了从屏幕左边缘右滑返回的手势功能. 但是,如果自定义了导航栏返回按钮,这项功能就失效了,需要自行实现.又如果需要修改手势触发范围,还是需要自行实现. 广泛应用的一种实现方 ...

  6. OC中UITabBarController控制器

    UITabBarController UITabBarController(记为O)常用于管理多个导航控制器,例如有ABC三个导航控制器,可以:addChildViewController(记为A), ...

  7. 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?

    还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值460亿美元的SaaS之王.今天谈谈『No ...

  8. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl

    ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageC ...

  9. Aptana Studio 3 汉化简体中文版

    最近开始学习ruby on rails了,同事推荐我用aptana这个编辑器,它对ror的支持比较好,所以安装了这个软件,但是发现都是英文的,所以在网上看汉化教程,幸亏有高手写过这个文章了,这里我只是 ...

  10. jsoup解析HTML及简单实例

    jsoup 中文参考文献    http://www.open-open.com/jsoup/ 本文将利用jsoup,简单实现网络抓取的功能,并给出一个小实例,该实例效果为:获取作者本人在博客园写的所 ...