Spec-Zone.ru › CSS

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

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

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

steps() CSS-функция задаёт переход, который делит входное время на заданное количество равных интервалов. Этот подкласс ступенчатых функций иногда также называют лестничными функциями.

Синтаксис

/* Different intervals */
steps(2, end)
steps(4, jump-end)
steps(12, end)

/* Different jump positions */
steps(3, jump-start)
steps(3, jump-end)
steps(3, jump-none)
steps(3, jump-both)

Параметры

Функция принимает следующие параметры:

<integer>
Задаёт количество равноотстоящих интервалов, или «шагов». Это должно быть положительное целое число больше 0, если только второй параметр не равен jump-none; в этом случае число должно быть положительным целым числом больше 1.
<step-position>
Задаёт момент перехода между значениями. Если параметр не указан, по умолчанию используется end. Возможные ключевые слова:
jump-start или start
Указывает, что первый шаг происходит в начале анимации.
jump-end или end
Указывает, что последний шаг происходит в конце анимации.
jump-none
Указывает, что ни ранних, ни поздних переходов не происходит.
jump-both
Указывает, что происходят и ранние, и поздние переходы.

Описание

Функция steps() делит длительность анимации на равные интервалы. Например, steps(4, end) делит анимацию на четыре равных интервала: значения меняются в конце каждого интервала, кроме последнего изменения, которое происходит в конце анимации.

Если анимация состоит из нескольких сегментов, заданное количество шагов применяется к каждому сегменту. Например, если анимация состоит из трёх сегментов и использует steps(2), всего будет шесть шагов — по два шага на сегмент.

На следующем изображении показано влияние разных значений <step-position> на момент переходов:

steps(2, jump-start)  /* Or steps(2, start) */
steps(4, jump-end)    /* Or steps(4, end) */
steps(5, jump-none)
steps(3, jump-both)

Graphs of Input progress to Output progress, of which steps(2, jump-start) shows horizontal lines extending 0.5 unit from (0, 0.5) and (0.5, 1), respectively, with empty circles at the origin and (0.5, 0.5); steps(4, jump-end) shows horizontal lines extending 0.25 unit from (0, 0), (0.25, 0.25), (0.5, 0.5), and (0.75, 0.75), respectively, with unfilled circles at (0.25, 0), (0.5, 0.25), and (0.75, 0.5), and a solid circle at (1, 1); steps(5, jump-none) shows horizontal lines extending 0.2 unit from (0, 0), (0.2, 0.25), (0.4, 0.5), (0.6, 0.75), and (0.8, 1), respectively, with unfilled circles at (0.2, 0), (0.4, 0.25), (0.6, 0.5), and (0.8, 0.75); steps(3, jump-both) shows horizontal lines extending 1/3 unit from (0, 0.25), (1/3, 0.5), and (2/3, 0.75),respectively , with a solid circle at (1, 1) and unfilled circles at the origin, (1/3, 0.25), (2/3, 0.5), and (1, 0.75).

Формальный синтаксис

<steps()> = 
  steps( <integer>, <step-position>? )

<integer> = 
  <number-token>

<step-position> = 
  jump-start |
  jump-end |
  jump-none |
  jump-both |
  start |
  end

Примеры

Использование функции steps()

Следующие функции steps() допустимы:

/* Five steps with jump at the end */
steps(5, end)

/* Two steps with jump at the start */
steps(2, start)

/* Using default second parameter */
steps(2)

Следующие функции steps() недопустимы:

/* First parameter must be an <integer>, not a real value */
steps(2.0, jump-end)

/* Number of steps must be positive */
steps(-3, start)

/* Number of steps must be at least 1 */
steps(0, jump-none)

Спецификации

Спецификация
CSS Easing Functions Level 1
# step-easing-functions

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

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
steps
8
12
4
12.1
5.1
18
4
14
5
1.0
4
5
jump
77
79
65
64
14
77
65
55
14
12.0
77
14

См. также

  • Другие функции плавности: cubic-bezier() и linear()
  • Модуль функций плавности CSS
  • Ступенчатая функция в Википедии

© 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/steps

Spec-Zone.ru

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