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. Learn RxJava

    Learn RxJava http://reactivex.io/documentation/operators.html https://github.com/ReactiveX/RxJava/wi ...

  2. Ubuntu 16.04 LTS 安装配置 Nginx 1.10.0 Php7.0-FPM

    1. 安装Nginx,Php-7.0 ~$ sudo add-apt-repository ppa:nginx/stable ~$ sudo apt-get update ~$ sudo apt-ge ...

  3. Android 图片的平移和镜面和倒影效果

    在前面的文章中陆续介绍了图片的旋转与缩放,本文继续介绍关于图片的操作 图片的平移 使用下面的代码将图水平竖直方向平移10个像素 matrix.setTranslate(10, 10); 可以看到图片不 ...

  4. objective-c系列-NSMutableArray

    ******************************************** // 可变数组构造方法 //  下边两句的定义都是不可变的 //    NSMutableArray *mar ...

  5. iOS 更改webView文字颜色丶文字大小丶背景色的方法

    在webView的delegate回调方法    - (void)webViewDidFinishLoad:(UIWebView *)webView;中写上一下语句即可 //字体大小 [webView ...

  6. JS代码判断字符串中有多少汉字

    $("form").submit(function () { var content = editor.getContentTxt(); var sum = 0; re = /[\ ...

  7. 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据

    [ASH]如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后 ...

  8. x01.os.8: 加载内核

    在 x01.os.7 中,借助 freedos,学习了保护模式.但操作系统必须完成引导:boot, 加载内核:loader,kernel,进而管理process,memory,file等. 引导比较简 ...

  9. IE6-11使用location.href提交时的链接复制到firefox或chrome时出现乱码

    这是在开发国际机票查询页时碰到的一个问题,测试工程师在IE里执行查询操作,然后把查询的url赋值到firefox的地址栏,firefox打开后就变成乱码了. 1. IE浏览器,选择出发地,出发日期等后 ...

  10. android开发环境搭建日记和嵌入式Android开发环境初探

    非常感谢博客园的各位,按照你们的博文,还有利用百度和谷歌逐渐建立了android的开发环境,只是给自己备份参考查看,看过的人可以忽略这篇文章. 本文章大部分参考了:http://www.cnblogs ...