快捷搜索:

CSS3 animation – steps 函数详解

CSS3animation–steps函数详解

  这几天在看一些 css3 动画的源码实现时,发现 css 代码的 animation 当中有一个比较陌生的单词 steps ,在源码中是这么写的:

  实际上 steps 函数和cubic-bezier函数分别对应动画的两种形式:跳跃式和连贯式。回顾平常我们是怎么使用cubic-bezier函数的:

  我们只需要在 @keyframes 中定义关键帧,cubic-bezier函数会帮助我们在关键帧之间补帧使其成为流畅的动画,但有时候我们不希望动画连贯的播放,而是跳跃式的播放,那我们就需要借助 steps 函数了。

  number: number 表示动画被分成了多少段,比如上述例子表示 div 从 0px 移动到 100px 的这一整段过程一共被分成 4 段。

  position: position 参数可选,默认为 end 。 start 与 end 的含义是什么呢,我的理解是: number 会将整个动画过程分成多段或者说多个周期, start 表示动画的状态会在每个周期的起始点瞬间完成变化,而 end 则表示动画的状态会在每个周期的结束点瞬间完成变化。这里附上 W3C 官方文档上的一张图片:

  上图的坐标系中,x轴代表时间,y轴代表动画的进度,在这张图中我们需要注意的是实心圆点,实心圆点表示的是动画所处的状态。我们来看第一张图,它表示的是 steps(1, start) 。根据前面的解释,整段动画将会作为一段也就是只有一个周期,而指定了 start 参数使得动画会在周期的起始点状态发生改变,所以我们可以看到第一个实心圆点的坐标为 (0,1) 。对于第二张图片,由于指定了 end ,所以动画的状态会在周期的结束点突变,因此对应两个实心圆点的坐标为 (0,0) 和 (1,1) 。下面的 steps(3, start) 和 steps(3, end) 也是同样的道理,这里就不具体分析了。

  可以看到当点击刷新时方块并没有运动,这是因为方块会在 2s 后瞬间移动到 200px 的位置,然后动画结束,回到起始位置,由于这个过程特别快,肉眼是看不到的,所以看上去就好像方块没有运动。如果想要停留在终点只需要给 div 加上animation-fill-mode: forwards即可。

  上述例子我们将 4s 动画分成 4 个周期,方块会在每个周期起始点也就是 0s ,1s ,2s ,3s 处发生位移,从上述效果图我们也可以看出,在我点击刷新瞬间就完成了一次状态变化,然后在 3s 后达到终点,在终点待了 1s 到动画结束,回到起始位置。

  指定 end 会使动画状态在每个周期的结束点发生变化asp代码加密工具怎么用视频教学手机版下载,对应例子就是在 1s ,2s ,3s ,4s 处发生变化。从上述效果图我们也可以看出方块在我点击刷新的 1s 后开始运动,在 4s 方块移动到终点的瞬间由于动画结束的原因又移动到起始位置,所以会产生方块好像没有移动到终点的错觉。

  以上所述是小编给大家介绍的CSS3 animation – steps 函数详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  课程开始: 前三节课,我们知道了什么是“内容块状元素和内联元素”,以及XHTML+CSS布局的核心概念“盒子模型”,同时又学习了一下页面布局中两种方法中的一种方法“浮动&...查看详情

  上节课我们将导航条做成了下面的效果但是此时的导航条还没有链接,还不能点击,这节课我们就要做一个完整的导航条【第四步】 我们需要将上面的导航条做以下几个修改 1)给上面的导航加上链接; 2)链接文字大小修改为12px; 3)并且规定链接样式,鼠标移上去和拿开的效果 修改方法如下 1...查看详情

  【第一步 整体布局与公共CSS定义】我们先来分析一下这个页面页面主要分5大块,顶部的Logo、导航条Nav、Banner、Content、Footer,如下图 下载 (116.12 KB)2009-6-1 09:22这样HTML就很容易写出来了复制代码代码如下: <div ...查看详情

  【第七步 内容左侧板块(ContentL)布局】 我们分析一下他的结构,主要包括标题和文章内容两块,并且标题和内容之间有一条虚线,而第二篇文章的内容部分是图片和文字相结合且文字环绕图片。 好~!既然搞清楚结构了,后面我们布局就容易了 我打算标题用<h1>标签,为什么这...查看详情

  如果下面的文字实在是无法理解透,那就记住这节课最后总结的一句话“如果用position来布局页面,父级元素的position属性必须为relative,而定位于父级内部某个位置的元素,最好用absoluteasp代码加密工具怎么用视频教学手机端下载,因为它不受父级元素的padding的属性影响,当然你也可以用...查看详情

  如果你还是不能太明白这句话,我们就做个实例,把我们第5节页面的头部blog区域用定位(position)来布局一下 HTML代码和原来的没有区别: 复制代码代码如下: <div id=Logo> <a href=# id=logoLink>&l...查看详情

  说到浏览器兼容性问题,就必须说CSS Hack!提到Hack大家肯定会想到电脑黑客(hacker)、和病毒程序联系到一块,不过在CSS中,Hack是指一种兼容CSS在不同浏览器中正确显示的技巧方法。说的更直白一些就是,你平时做个页面asp学习,布局正确,CSS正确,可就是在不同的浏览器中显...查看详情

  代码如下: HTML代码: 复制代码代码如下: <a id=theLink></a> CSS代码: 复制代码代码如下: #theLink{ display:block;/*因为标签a是内链元素,所以利用这句话将内链元素转化成块状元素,后面的width和...查看详情

  前言为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性。在IE6中引入一个增设的兼容性模式,文件兼容性使你能够在IE呈现你的网页时选择特定编译模式。新的IE为了确保网页在未来的版本中都有一支的外观,IE8引入了文件兼容性。当你引入一个增设的兼容性模式,...查看详情

  使用CSS来修饰滚动条 1.overflow内容溢出时的设置 overflow-x水平方向内容溢出时的设置 overflow-y垂直方向内容溢出时的设置 以上三个属性设置的值为visible(默认值)、scroll、hidden、auto。 2.scrollbar-3d-ligh...查看详情

您可能还会对下面的文章感兴趣: