css animation关于step

animation-timing-function

animation-timing-function 规定动画的速度曲线。速度曲线定义动画从一套 CSS
样式变为另一套所用的时间。在平常的取值中,主要有以下几个:























描述
linear 动画从头到尾的速度是相同的。
ease 默认。动画以低速开始,然后加快,在结束前变慢。
ease-in 动画以低速开始。
ease-out 动画以低速结束。
ease-in-out 动画以低速开始和结束。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。


在这个表中,还有几个属性是没有列出来的,即step-end,step-start,steps(),他们是以一帧一帧的显示动画,这在部分动画中有着重要的意义。三个值的属性各不同,先看示例:

linear:

step-start:

step-end:

steps(3,start):

代码:


<style type="text/css">
@-webkit-keyframes changeColor{
from,to{background: red;}
20% {background: blue;}
60% {background: black;}
}
#animation_show div{
width: 100px;
height: 100px;
display: inline-block;
}
</style>
<div id=‘animation_show‘>
linear:<div style=‘-webkit-animation:changeColor 10s infinite linear;‘></div>
step-start:<div style=‘-webkit-animation:changeColor 10s infinite step-start;‘></div>
step-end:<div style=‘-webkit-animation:changeColor 10s infinite step-end;‘></div>
steps(3,start):<div style=‘-webkit-animation:changeColor 10s infinite steps(3,start);‘></div>
</div>

可以看到,其中的差别仅仅是animation-timing-function,可以看出:

step-start在变化过程中,都是以下一帧的显示效果来填充间隔动画,即在20%(background:
blue;)到60%(background: black;)之间,显示的是60%的效果(background: black;)

step-end与上面相反,都是以上一帧的显示效果来填充间隔动画,即在20%(background:
blue;)到60%(background: black;)之间,显示的是20%的效果(background: blue;)

而steps函数就比较神奇了,它可以传入两个参数,第一个是一个大于0的整数,他是将间隔动画等分成指定数目的小间隔动画,然后根据第二个参数来决定显示效果。第二个参数设置后其实和step-start,step-end同义,在分成的小间隔动画中判断显示效果。可以看出:steps(1,
start) 等于step-start,steps(1,end)等于step-end

这是http://www.w3.org/ 上的一张图片,很好的说明了steps函数的工作机制:

无js实现图片轮播

直接上代码,先是css:


<style type="text/css">
@-webkit-keyframes slide{
from,to {left:0px;}
19% {left: 0px;}
20% {left: -500px;}
39% {left: -500px;}
40% {left: -1000px;}
59% {left: -1000px;}
60% {left: -1500px;}
79% {left: -1500px;}
80% {left: -2000px;}
99% {left: -2000px;}
}
@-webkit-keyframes dot1{
from,to {background-position: 0px 0px;}
20% {background-position: -71px 0px}
}
@-webkit-keyframes dot2{
from,to {background-position: 0px 0px;}
20% {background-position: 0px 0px;}
40% {background-position: -71px 0px;}
}
@-webkit-keyframes dot3{
from,to {background-position: 0px 0px;}
40% {background-position: 0px 0px;}
60% {background-position: -71px 0px;}
}
@-webkit-keyframes dot4{
from,to {background-position: 0px 0px;}
60% {background-position: 0px 0px;}
80% {background-position: -71px 0px;}
}
@-webkit-keyframes dot5{
from {background-position: 0px 0px;}
80% {background-position: 0px 0px;}
to {background-position: -71px 0px;}
}
*{
margin: 0px;
padding: 0px;
}
#slide #pic img{
width: 500px;
}
#slide #pic li{
display: table-cell;
vertical-align: top;
}
#slide ul#pic{
width: 2550px;
font-size: 0px;
position: relative;
-webkit-animation: slide 20s infinite linear;
}
div#slide{
position: relative;
width: 500px;
overflow: hidden;
margin: 10px;
}
#slide #list{
position:absolute;
bottom:120px;
}
#slide #list li{
background-image: url(‘http://images.cnitblog.com/i/596159/201406/091126025921070.jpg‘);
width: 23px;
height: 23px;
display: inline-block;
list-style: none;
overflow: hidden;
margin: 0 10px;
}
</style>

然后是html:


<div id=‘slide‘>
<ul id=‘pic‘>
<li><img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvaW1hZ2VzLmNuaXRibG9nLmNvbS9pLzU5NjE1OS8yMDE0MDYvMDkxMTI1MDYxMjQyNTU0LmpwZw==.jpg"></li>
<li><img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvaW1hZ2VzLmNuaXRibG9nLmNvbS9pLzU5NjE1OS8yMDE0MDYvMDkxMTI1MzI5NjcyNDIwLmpwZw==.jpg"></li>
<li><img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvaW1hZ2VzLmNuaXRibG9nLmNvbS9pLzU5NjE1OS8yMDE0MDYvMDkxMTI1NDEzODkxMjE0LmpwZw==.jpg"></li>
<li><img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvaW1hZ2VzLmNuaXRibG9nLmNvbS9pLzU5NjE1OS8yMDE0MDYvMDkxMTI1NDg0MjAyNzY1LmpwZw==.jpg"></li>
<li><img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHAvaW1hZ2VzLmNuaXRibG9nLmNvbS9pLzU5NjE1OS8yMDE0MDYvMDkxMTI1NTQzNzQyNzQ2LmpwZw==.jpg"></li>
</ul>
<ul id=‘list‘>
<li style=‘-webkit-animation:dot1 20s infinite step-start;‘></li>
<li style=‘-webkit-animation:dot2 20s infinite step-start;‘></li>
<li style=‘-webkit-animation:dot3 20s infinite step-start;‘></li>
<li style=‘-webkit-animation:dot4 20s infinite step-start;‘></li>
<li style=‘-webkit-animation:dot5 20s infinite step-start;‘></li>
</ul>
</div>

然后就是效果了:





图片都是从百度上拷下来的,希望没有版权问题。。。。

css animation关于step,布布扣,bubuko.com

时间: 2024-10-20 22:50:55

css animation关于step的相关文章

CSS Animation 属性

一.animation是CSS3中新增的属性,它可以制作出多种酷炫的动画效果,如果对flash有一定的了解,那这个属性就会很容易学习. 先展示一下简单的动画效果 __ __O 二.下面就来了解一下animation的具体属性. 1.动画名称 1 /*1.name:动画名称*/ 2 /*-webkit-animation-name: kf_play;*/ 3 /*-moz-animation-name: kf_play;*/ 4 /*-o-animation-name: kf_play;*/ 5

CSS Animation

1 div { 2 /* Chrome, Safari, Opera 等使用webkit引擎的浏览器*/ 3 -webkit-animation-name: myfirst; /*规定 @keyframes 动画的名称.*/ 4 -webkit-animation-duration: 5s; /*规定动画完成一个周期所花费的秒或毫秒.默认是 0.*/ 5 -webkit-animation-timing-function: linear;/*设置动画的速度曲线,默认是 "ease".*

[CSS3] Make a One-time CSS Animation that Does Not Revert to its Original Style

We'll add animation to patio11bot using CSS keyframes. When defining a CSS animation, you can add it to a class with animation-name, set the duration with animation-duration, and if you want the animation to 'stick' on the end state, add animation-fi

css animation和keyframes

keyframes应用在animation上,animation应用在元素上. <html> <style type="text/css"> .div1 { width:100px;height:100px;border:1px solid #000;position:relative; animation : move 800ms ease-out infinite alternate; } @keyframes move { from {top:0px;}

css Animation初体验(译文)

目前有越来越多的网站都使用animation,无论他们是用GIF,SVG,WebGL,视频背景或者其他形式展示.适当地使用动画会让网站更生动,互动性更好,为用户增加一个额外的反馈和体验层. 在本教程中我会向你介绍CSS动画:随着浏览器支持性的提高已经变得越来越流行了,css动画在做一些事情上有很高的性能.在涵盖了基础知识后,我们将建一个快速的例子:矩形变成圆形的动画. 演示看这里 @keyframes和动画 介绍 css动画的主要组件:@keyframes,创建动画的css规则.把@keyfra

优雅地使用CSS Animation delay

今天写一个css动画时遇到一个mini难题,记录如下: 1.需求: 等待元素A的动画加载完,再加载B元素的动画 2.初始思路: 在B元素的动画属性上加上delay(延迟,使得这个延迟时间 = A元素动画的加载时间) 即:animation : bmove 1s .4s 1; (这里的.4s即delay) b的动画过程代码如下: @keyframes bmove { 0%     { opacity:0px; margin-top:300px } 70%   { opacity:1px;  } 1

CSS Animation初探

动画在交互设计中是一个十分能加分的东西,用以平滑过度,会让用户体验上几个台阶.对于Web开发也是如此,恰当的使用动画可以让网页使用起来更加的用户友好.这里就来探讨一下CSS中一些动画的实现方式,初识前端,不足之处敬请指正. 点击阅读全文

CSS animation online生成工具

利用HTML5.css的一些动画功能,可以设计出非常炫酷的动画,但是由于并不是所有的浏览器都支持,所以可能需要prefix,这个过程是比较烦的.一个比较好用的线上工具: http://matthewlein.com/ceaser/

CSS animation动画loading

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>logging</title> <style> @keyframes beat{ 70%{ transform: scale(1,1); } 100%{ transform: scale(1.3,1.3); } } body{ margin: 0