返回顶部
首页 > 资讯 > 精选 >怎么在CSS3中使用steps 函数
  • 949
分享到

怎么在CSS3中使用steps 函数

2023-06-08 06:06:08 949人浏览 独家记忆
摘要

这篇文章给大家介绍怎么在css3中使用steps 函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。animation: thunder 2s steps(1, end) infinite;查阅相关资料后发现 step

这篇文章给大家介绍怎么在css3中使用steps 函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

animation: thunder 2s steps(1, end) infinite;

查阅相关资料后发现 steps 函数是 animation-timing-function 属性的一个值,那这个函数相较于其他值比如 ease , linear 的区别在哪里呢。

steps

在查阅相关资料后才发现自己之前对 animation-timing-function 了解不够充分,实际上 animation-timing-function 的 function 指的是 steps() 和  cubic-bezier( ) 即贝塞尔曲线函数这两个函数,像 linear , ease 这些值其实是   cubic-bezier() 函数的特殊值, steps() 函数同样也有两个特殊值: step-start step-end 。在了解这些前提后,下面来具体分析 steps 函数的作用。

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

div {  animation: move 1s linear infinite alternate;}@keyframes move {  0% {    margin-left: 0;  }  30% {    margin-left: 50px;  }  100% {    margin-left: 100px;  }}

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

steps函数接收两个参数: number 和 position 。 number 是正整数, position 有两个值: start 和 end 。前面我们提到 steps 的两个特殊值: step-start 和 step-end ,实际上它们分别代表 steps(1, start) 和 steps(1, end) 。那这两个参数分别代表什么含义呢?

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

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

怎么在CSS3中使用steps 函数 

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

接下来为了更加直观的感受 steps 函数的作用,举几个例子来加深理解:

这里先举一个连贯动画来作为参考,部分代码如下:

div {  width: 100px;  height: 100px;  background-color: red;  animation: move 2s linear;}@keyframes move {  0% {    margin-left: 0;  }  100% {    margin-left: 200px;  }}

效果如下:

怎么在CSS3中使用steps 函数 

可以看到红方块是经过 2s 匀速运动到终点,然后回到起始位置

接下来是 steps(1, start) 的例子:

div {  width: 100px;  height: 100px;  background-color: red;  animation: move 2s step-start;}

效果如下:

怎么在CSS3中使用steps 函数 

可以看到在我点击刷新的一瞬间方块就到达了终点,然后经过 2s 后回到起始位置

再来看看 steps(1, end) 的例子:

div {  width: 100px;  height: 100px;  background-color: red;  animation: move 2s step-end;}

效果如下:

怎么在CSS3中使用steps 函数 

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

我们再来看看分成多段的情况,首先 start 分成多段:

div {  width: 100px;  height: 100px;  background-color: red;  animation: move 4s steps(4, start);}

效果如下:

怎么在CSS3中使用steps 函数 

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

再来看 end 分成多段的情况:

div {  width: 100px;  height: 100px;  background-color: red;  animation: move 4s steps(4, end);}

效果如下:

怎么在CSS3中使用steps 函数 

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

关于怎么在CSS3中使用steps 函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么在CSS3中使用steps 函数

本文链接: https://lsjlt.com/news/252125.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在CSS3中使用steps 函数
    这篇文章给大家介绍怎么在CSS3中使用steps 函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。animation: thunder 2s steps(1, end) infinite;查阅相关资料后发现 step...
    99+
    2023-06-08
  • 怎么在css3中使用matrix函数
    这篇文章给大家介绍怎么在css3中使用matrix函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。scale(sx,sy)对应matrix(sx,0,0,sy,0,0)  拉伸rotate(&the...
    99+
    2023-06-08
  • Animation怎么在CSS3 中使用
    本篇文章为大家展示了Animation怎么在CSS3 中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。兼容性animation在绝大部分主流浏览器都得到了很好的支持!还在兼容IE9的同学要谨慎使...
    99+
    2023-06-08
  • 怎么用CSS steps()函数实现随机翻牌效果
    这篇文章主要介绍“怎么用CSS steps()函数实现随机翻牌效果”,在日常操作中,相信很多人在怎么用CSS steps()函数实现随机翻牌效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • border-image怎么在CSS3中使用
    这篇文章给大家介绍border-image怎么在CSS3中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CSS Code复制内容到剪贴板border-width: 40px;   bo...
    99+
    2023-06-09
  • Media Queries怎么在CSS3中使用
    这期内容当中小编将会给大家带来有关Media Queries怎么在CSS3中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。最大宽度max-width“max-width”是媒体特性中最常用的一个特性,...
    99+
    2023-06-09
  • transition和animation怎么在CSS3中使用
    今天就跟大家聊聊有关transition和animation怎么在CSS3中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。transition transition 属性是 tr...
    99+
    2023-06-09
  • Trunc函数怎么在Oracle中使用
    这期内容当中小编将会给大家带来有关Trunc函数怎么在Oracle中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. Trunc( date)trunc ...
    99+
    2024-04-02
  • decode函数怎么在Oracle中使用
    decode函数怎么在Oracle中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。含义解释: decode(条件,值1,返回值1,值2...
    99+
    2024-04-02
  • 怎么在mysql中使用if函数
    今天就跟大家聊聊有关怎么在mysql中使用if函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体场景如下, 先看看表结构:CREATE...
    99+
    2024-04-02
  • 怎么在oracle中使用decode函数
    今天就跟大家聊聊有关怎么在oracle中使用decode函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1:使用decode判断字符串是否一样DE...
    99+
    2024-04-02
  • find_in_set()函数怎么在mysql中使用
    这期内容当中小编将会给大家带来有关find_in_set()函数怎么在mysql中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MySQL手册中find_in_set...
    99+
    2024-04-02
  • 怎么在mysql中使用find_in_set()函数
    这篇文章将为大家详细讲解有关怎么在mysql中使用find_in_set()函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL手册中find_in...
    99+
    2024-04-02
  • 怎么在jQuery中使用prev()函数
    在jQuery中使用prev()函数的方法:prev()函数,用于获取匹配元素集中的前一个同级元素,语法:.prev(selector)。具体方法如下:prev()函数:jQuery中prev()函数的作用是用于获取当前元素同级的前一个元素...
    99+
    2024-04-02
  • array_unique函数怎么在php中使用
    array_unique函数作用:php中array_unique函数的作用是删除数组中的重复值,并返回结果数组。array_unique函数语法:array_unique(array);参数:array:需要删除重复值的数组。array_...
    99+
    2024-04-02
  • array_fill函数怎么在php中使用
    array_fill函数怎么在php中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。说明array_fill()函数用于使用给定索引,从给定索引中填充数组中...
    99+
    2023-06-06
  • 怎么在python中使用partial函数
    怎么在python中使用partial函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、...
    99+
    2023-06-14
  • sorted()函数怎么在python中使用
    这篇文章给大家介绍sorted()函数怎么在python中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易...
    99+
    2023-06-14
  • strlen()函数在php中怎么使用
    这篇文章主要介绍了strlen()函数在php中怎么使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的...
    99+
    2023-06-14
  • kotlin函数怎么在java中使用
    本篇文章给大家分享的是有关kotlin函数怎么在java中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作