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步执行.

最新文章

  1. 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树
  2. SOAPUI测试步骤----DataGen TestStep
  3. [nRF51822] 6、基于nRF51822平台的flash读写研究
  4. 【BZOJ 1051】【HAOI 2006】受欢迎的牛
  5. javascript之纯数字验证
  6. 【WCF 1】WCF框架宏观了解
  7. 通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库
  8. 使用html5结构化元素
  9. Java Interview Reference Guide--reference
  10. js this [转]
  11. eclipse设置JSP的默认编码
  12. 拓扑序+dp Codeforces Round #374 (Div. 2) C
  13. centos6 安装mysql
  14. js实用技巧
  15. 配置STP、RSTP以及负载均衡
  16. 防火墙禁ping:虚拟机ping不通主机,但主机可以ping虚拟机
  17. Java基础知识➣多线程编程(五)
  18. 字符串通过在配置文件配置三个key来进行加密解密
  19. 第三个Sprint冲刺第6天
  20. shell 编程每日100行

热门文章

  1. 看代码学知识之(2) ListView无数据时显示其他View
  2. CAShaperLayer的应用
  3. 跨越千年的RSA算法
  4. iOS: setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key name.
  5. php 操作mysql 分表的一种方法
  6. #一周五# win10通用平台,无处不在的Xamarin,msbuild开源,MVP卢建晖的Asp.NET 5系列 (视频)
  7. 用java的jdk 生成android 的jni接口文档
  8. JavaScript Patterns 6.4 Prototypal Inheritance
  9. 问题解决——开启Guest后仍无法共享打印机
  10. 为IIS站点添加限制IP