linear()

Baseline 2023
新推出

自 ⁨2023 年 12 月⁩起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在较旧的设备或浏览器上使用。

linear() CSS 函数创建一个在点之间均匀渐进的过渡曲线。作为一种 <easing-function>(缓动函数),它创建的过渡从开始到结束都以恒定速率进行插值

语法

css
linear(0, 1)
linear(0, 0.25, 1)
linear(0, 0.25 75%, 1)
linear(0, 0.5 25% 75%, 1)

参数

该函数接受两个或多个以下值,这些值代表动画时间轴上的进度点。

<number>

表示动画或过渡持续时间中的一个时间点。必须至少指定两个值。值 0 表示过渡的开始,1 表示结束。也允许使用 01 范围之外的值。

<percentage> 可选

表示动画时间轴中何时达到进度 <number>。它可以在除了第一个和最后一个以外的任何 <number> 值之后指定,并且最多可以有两个值。如果指定了两个百分比值,它们定义了停止的长度:第一个百分比表示该段动画或过渡的起点,第二个百分比表示终点。如果没有指定 <percentage> 值,则进度值会沿时间轴均匀分布。

描述

linear() 函数允许通过在指定点之间进行线性插值来近似复杂的动画和过渡。linear() 函数的典型用途是提供许多点来近似任何曲线。

linear() 函数创建的过渡在指定点之间以恒定速率进行。例如,linear(0, 0.25, 1)00.251 的线性停止点。动画从点 0 开始,线性移动到 0.25,然后继续线性移动到点 1。由于没有指定百分比,每个段(即从 00.25 以及从 0.251)都使用相同的持续时间(50%)。

Graphs of Input progress to Output progress, of which linear(0, 0.25, 1) shows a broken line connecting the origin, (0.5, 0.25), and (1, 1); and linear(0, 0.25 75%, 1) shows a broken line connecting the origin, (0.75, 0.25), and (1, 1).

默认情况下,停止点是等距的。例如,如果有五个停止点,它们将分别发生在持续时间的 0%、25%、50%、75% 和 100%。你可以使用可选的百分比值来提供更精细的控制,定义每个进度值何时发生,从而实现更受控的过渡进度。

考虑一个持续时间为 100 秒、变化量为 100 像素的动画。我们来看一个动画缓动指定为 linear(0, 0.25 75%, 1) 的场景。在这种情况下,动画在前 75 秒(持续时间的 75%)内进展 25 像素(总变化的 25%)。剩余的 75 像素在动画的最后 25 秒内应用。

对于相同的动画,假设缓动函数指定为 linear(0, 0.5 25% 75%, 1)。这里,动画在 25 秒(持续时间的 25%)内达到 50 像素(总变化的 50%),并在此停留 50 秒(持续时间的 75% - 25%)。然后剩余的 50 像素在持续时间的最后 25 秒内应用。请注意,linear(0, 0.5 25% 75%, 1) 等同于 linear(0, 0.5 25%, 0.5 75%, 1)

正式语法

<linear()> = 
linear( [ <number> && <percentage>{0,2} ]# )

示例

使用 linear() 函数

以下 linear() 函数可在 CSS 中有效使用:

css
/* Three evenly distributed progress points */
linear(0, 0.25, 1)

/* Custom timing with percentage values */
linear(0, 0.5 25% 75%, 1)

以下 linear() 定义无效:

css
/* At least two parameters are required */
linear(0.5)

/* Percentages must be in ascending order */
linear(0, 0.25 80%, 0.5 60%, 1)

/* Values must be numbers */
linear(start, middle, end)

规范

规范
CSS 缓动函数级别 1
# 线性缓动函数

浏览器兼容性

另见