百科狗-知识改变命运!
--

- 缓动函数 - css 过度

乐乐1年前 (2023-11-21)阅读数 20#技术干货
文章标签函数

版本:CSS3

CSS 数据类型表示一个数学函数,它描述了在一个过渡或动画中一维数值的改变速度。这实质上让你可以自己定义一个加速度曲线,以便动画的速度在动画的过程中可以进行改变。这些函数通常被称为缓动函数。

这是一个表示时间输出比率的函数,表示为,0, 0 代表初始状态,1, 1 代表终止状态。

输出比可以大于1.0(或者小于0.0)。这是因为在一种反弹效果中,动画是可以比最后的状态走的更远的,然后再回到最终状态。

不过,如果输出值超过了它允许的范围,比如组成一个颜色的值大于了255或者小于了0,这个值会被修改为允许范围内的最接近的值(在颜色值这个例子中分别为255和0)。一些贝塞尔曲线展示了这些性质。

定时函数

CSS 支持两种定时函数:立方贝塞尔曲线的子集和阶梯函数。这些函数中最有用的是一个关键字,可以很容易地引用它们。

浏览器支持

浏览器都支持数据类型

cubic-bezier()定时函数

cubic-bezier()定义了一条立方贝塞尔曲线(cubic Bézier curve)。这些曲线是连续的,一般用于动画的平滑变换,也被称为缓动函数(easing functions)。

 - 缓动函数 - css 过度

一条立方贝塞尔曲线需要四个点来定义,P0 、P1 、P2 和 P3。P0 和 P3 是起点和终点,这两个点被作为比例固定在坐标系上,横轴为时间比例,纵轴为完成状态。P0 是(0, 0),表示初始时间和初始状态。P3 是(1, 1),表示终止时间和终止状态。

并非所有的三次贝塞尔曲线都适合作为计时函数,也并非所有的曲线都是数学函数,即给定横坐标为0或1的曲线。在CSS定义的P0和P3固定的情况下,三次贝塞尔曲线是一个函数,因此,当且仅当P1和P2的横坐标都在[0,1]范围内时,三次贝塞尔曲线是有效的。

三次贝塞尔曲线的 P1或 P2坐标超出[0, 1]范围可能会产生弹跳效果。

当指定的三次贝塞尔曲线无效时,CSS将忽略整个属性。

语法

cubic-bezier(x1,y1,x2,y2)
  • x1,y1,x2,y2是类型的值,它们代表当前定义立方贝塞尔曲线中的P1P2点的横坐标和纵坐标
  • x1和x2必须在[0,1]范围内,否则当前值无效。

示例

cubic-bezier(0.1, 0.7, 1.0, 0.1)   The canonical Bézier curve with four  in the [0,1] range.
cubic-bezier(0, 0, 1, 1)           Using  is valid as any  is also a .
cubic-bezier(0.3, -1.9, 2.1, -0.2) Negative values for ordinates are valid, leading to bouncing effects.
cubic-bezier(0.1, 4, 0.6, 2.45)    Values > 1.0 for ordinates are also valid.

steps()函数

steps()定义了一个以等距步长划分值域的步长函数。这个阶跃函数的子类有时也称为阶梯函数。

语法

steps(number_of_steps,direction)
  • number_of_steps:是一个严格正的,表示构成步进函数的等距踏板的数量。
  • direction:是一个关键字,指示函数是左连续还是右连续:
    • start:表示左连续函数,因此第一步发生在动画开始时;
    • end:表示右连续函数,因此最后一步在动画结束时发生。

示例
steps(5, end)          There is 5 treads, the last one happens right before the end of the animation.
steps(2, start)        A two-step staircase, the first one happening at the start of the animation.

常用定时函数关键字

linear

此关键字表示定时函数cubic-bezier(0.0, 0.0, 1.0, 1.0)。使用这个定时函数,动画会以恒定的速度从初始状态过渡到结束状态。

ease

此关键字表示定时函数 cubic-bezier(0.25, 0.1, 0.25, 1.0)。这个函数类似于 ease-in-out,尽管它在开始时加速地更快,但在接近中间中,加速已经开始变慢了。

ease-in

此关键字表示定时函数cubic-bezier(0.42, 0.0, 1.0, 1.0)。动画开始时缓慢,然后逐步加速,知道达到最后状态,动画突然停止。

ease-in-out

此关键字表示定时函数 cubic-bezier(0.42, 0.0, 0.58, 1.0)。使用这个定时函数,动画开始的行为类似于 ease-in 函数,动画结束时的行为类似于 ease-out函数。

ease-out

此关键字表示定时函数 cubic-bezier(0.0, 0.0, 0.58, 1.0)。动画开始很快,然后逐渐减慢,直到最终状态。

step-start

此关键字表示定时函数 steps(1, start)。使用这个定时函数,动画会立刻跳转到结束状态,并一直停留在结束状态直到动画结束。

step-end

此关键字表示定时函数 steps(1, end)。使用这个定时函数,动画会一直保持初始状态直到动画结束,然后立刻跳转到结束状态。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)