Spec-Zone.ru › CSS

Функция CSS `linear()`

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с декабря 2023 года.

linear() CSS функция создаёт кривую перехода, которая равномерно проходит между точками. Как <easing-function>, она создаёт переходы, в которых интерполяция происходит с постоянной скоростью от начала до конца.

Синтаксис

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

Параметры

Функция принимает два или более следующих значений, представляющих точки прогресса на временной шкале анимации:

<number>
Представляет момент времени в пределах длительности анимации или перехода. Необходимо указать как минимум два значения. Значение 0 обозначает начало перехода, а 1 — его конец. Также допускаются значения за пределами диапазона от 0 до 1.
<percentage> Необязательно
Указывает, когда на временной шкале анимации достигается значение прогресса <number>. Его можно указать после любого значения <number>, кроме первого и последнего, причём можно указать до двух таких значений. Если указаны два процентных значения, они задают длину участка: первое указывает начальную точку, а второе — конечную точку этого участка анимации или перехода. Если значение <percentage> не указано, значения прогресса равномерно распределяются по временной шкале.

Описание

Функция linear() позволяет приближённо задавать сложные анимации и переходы посредством линейной интерполяции между указанными точками. Обычно функцию linear() используют, задавая множество точек, чтобы приблизить любую кривую.

Функция linear() создаёт переходы, в которых прогресс между указанными точками происходит с постоянной скоростью. Например, linear(0, 0.25, 1) содержит линейные остановки в точках 0, 0.25 и 1. Анимация начинается в точке 0, линейно перемещается к 0.25, а затем линейно продолжается до точки 1. Поскольку проценты не указаны, для каждого сегмента используется одинаковая длительность (50%), то есть от 0 до 0.25 и от 0.25 до 1.

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). В этом случае анимация достигает 50 пикселей (50% от общего изменения) за 25 секунд (25% длительности), а затем остаётся на этом значении в течение 50 секунд (от 25% до 75% длительности). Затем оставшиеся 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:

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

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

Следующие определения linear() недопустимы:

/* 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
# the-linear-easing-function

Совместимость с браузерами

Настольные устройства Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
linear-function
113
113
112
99
17.2
113
112
76
17.2
23.0
113
17.2

См. также

  • Другие функции сглаживания: cubic-bezier() и steps()
  • Модуль функций сглаживания CSS
  • linear() генератор сглаживания от Jake Archibald

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/easing-function/linear

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API