animation-timing-function: steps() 详解

在应用 CSS3 渐变/动画时,有个控制时间的属性 <animation-timing-function> 。它的取值中除了常用到的 贝萨尔曲线以外,还有个让人比较困惑的 steps() 函数。

teps(n,start/end) 第一个参数 number 为指定的间隔数,即把动画分为 n 步阶段性展示,第二个参数默认为 end,设置最后一步的状态,start 为结束时的状态,end 为开始时的状态。

steps 有两个参数

  1. 第一个肯定是分几步执行完
  2. 第二个有两个值
    • start 第一帧是第一步动画结束
    • end 第一帧是第一步动画开始

      #demo {
        animation-iteration-count: 2;
        animation-duration: 3s;
      }
      

        

这是一个 持续3s一共2次 的动画,我们分别对它应用 steps(3, start) 和 steps(3, end) ,做出阶跃函数曲线如下:

1. steps(3, start)

steps() 第一个参数将动画分割成三段。当指定跃点为 start 时,动画在每个计时周期的起点发生阶跃(即图中 空心圆 → 实心圆 )。 由于第一次阶跃发生在第一个计时周期的起点处(0s),所以我们看到的第一步动画(初态)就为 1/3 的状态,因此在视觉上动画的过程为 1/3 → 2/3 → 1 。

2. steps(3, end)

当指定跃点为 end,动画则在每个计时周期的终点发生阶跃(即图中 空心圆 → 实心圆 )。 由于第一次阶跃发生在第一个计时周期结束时(1s),所以我们看到的初态为 0% 的状态;而在整个动画周期完成处(3s),虽然发生阶跃跳到了 100% 的状态,但同时动画结束,所以 100% 的状态不可视。因此在视觉上动画的过程为 0 → 1/3 → 2/3 。

最后还是得说这个属性用到的不多,只有一些跳跃性的动画才会用到。

新手刚来,大家指点指点!!!

时间: 2024-12-23 05:06:08

animation-timing-function: steps() 详解的相关文章

Android研究之属性动画(Property Animation)完全解析详解下

 上一篇Android研究之属性动画(Property Animation)完全解析详解上已经基本展示了属性动画的核心用法: ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~ 当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~ 1.如何使用xml文件来创建属性动画 大家肯定都清楚,View Animator .Drawable Animator都可以在anim文件夹下创建动画,然后在程序中使用,甚至在The

[转] boost::function用法详解

http://blog.csdn.net/benny5609/article/details/2324474 要开始使用 Boost.Function, 就要包含头文件 "boost/function.hpp", 或者某个带数字的版本,从 "boost/function/function0.hpp" 到 "boost/function/function10.hpp". 如果你知道你想保存在 function 中的函数的参数数量,这样做可以让编译器

animation-timing-function的steps详解

W3C里的定义: animation-timing-function 规定动画的速度曲线. 这个属性有很多取值, linear: 线性过渡.等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) ease: 平滑过渡.等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0) ease-in: 由慢到快.等同于贝塞尔曲线(0.42, 0, 1.0, 1.0) ease-out: 由快到慢.等同于贝塞尔曲线(0, 0, 0.58, 1.0) ease-in-out: 由慢到快再到慢.等同于贝塞

boost::function用法详解

要开始使用 Boost.Function, 就要包含头文件 "boost/function.hpp", 或者某个带数字的版本,从 "boost/function/function0.hpp" 到 "boost/function/function10.hpp". 如果你知道你想保存在 function 中的函数的参数数量,这样做可以让编译器仅包含需要的头文件.如果包含 "boost/function.hpp", 那么就会把其它的

第21讲: 偏函数(Partially applied function)实战详解

偏函数,也叫部分应用函数,就是调用的时候,只传入函数的部分参数.先举个例子就很容易明白了. object PartialAppliedFunction {   def main(args: Array[String]): Unit = {     val part_sum = sum(1,_:Int,3)     println(part_sum(2))   }      def sum(a:Int,b:Int,c:Int)=a+b+c } 我们定义了一个函数sum,共有3个参数. 我们又定义了

$.extend()方法和(function($){...})(jQuery)详解

1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的.这样就直接按照在C#中使用Substring的方式,直接在js中用了substring,在实际的项目中,有时候能得到正确的结果,但是有时候得到的结果却让人匪夷所思,后来仔细的调试跟踪之后才发现,原来是Js中substring的方法跟C#中的Substring方法不一样.关于C# 中的字符串截取方法已

PHP中的function函数详解

PHP函数,在PHP中函数起到一个不可分割的重要部分,很多功能实现都要用到函数,PHP的最大的威力就来源于函数! 在PHP中内建函数至少有上千个函数.这些内建函数了解就行了,官方文档里面有函数大全:传送门—>文档 函数还可以自定义,我们定义一个php_yaoyuan函数,让他输出一段文字:这就是这个函数的功能. 下面是代码案例: 1 <?php 2 function php_yaoyuan(){ 3 echo "这是一段自建函数代码演示输出内容姚远怪蜀黍"; 4 } 5 p

每日学习心得:$.extend()方法和(function($){...})(jQuery)详解

1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的.这样就直接按照在C#中使用Substring的方式,直接在js中用了substring,在实际的项目中,有时候能得到正确的结果,但是有时候得到的结果却让人匪夷所思,后来仔细的调试跟踪之后才发现,原来是Js中substring的方法跟C#中的Substring方法不一样.关于C# 中的字符串截取方法已

$.extend()方法和(function($){...})(jQuery)详解 关于js 的 深入用法。“use strict”

这一次release的内容终于做完了,可以研究一下用到的东西. 以前写js 都是基本的写法, 写个function, 这次看到同事用jquery 加js 写的插件 用了自己不知道的新知识,觉得得有必要学习一下了. 1. "use  strict";   可以在写js 的文件中把这句话放上,不知道是什么意思 ,查了一下,应该是让js写法更严谨,当出现不符合要求的js,系统会报错 看解释给的一个例子  foo = ’aa': 当加了这句话就会报错.  大约就是语法更严谨了. 可以写到fun