scroll-timeline-name
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Экспериментально: Это экспериментальная технология
Перед использованием в продакшене внимательно изучите таблицу совместимости с браузерами.
Свойство scroll-timeline-name CSS используется для определения имени именного временного отрезка прокрутки, который продвигается при прокрутке элемента со скроллом (скроллер) сверху вниз (или слева направо). scroll-timeline-name задаётся на скроллере, который будет предоставлять временной отрезок.
Затем имя используется в декларации animation-timeline, чтобы указать элемент контейнера, который используется для управления прогрессом анимации посредством действия прокрутки.
Примечание: Если элемент не выходит за пределы контейнера по оси, или переполнение скрыто или обрезано, временной отрезок не будет создан.
Свойства scroll-timeline-axis и scroll-timeline-name также можно задать с помощью сокращённого свойства scroll-timeline.
Синтаксис
scroll-timeline-name: none; scroll-timeline-name: --custom_name_for_timeline;
Значения
Допустимые значения для scroll-timeline-name:
none-
Временной отрезок не имеет имени.
<dashed-ident>-
Произвольный пользовательский идентификатор, определяющий имя для временного отрезка прокрутки, которое затем можно использовать в свойстве
animation-timeline.Примечание: Значения
<dashed-ident>должны начинаться с--, что помогает избежать конфликтов имён со стандартными ключевыми словами CSS.
Формальное определение
| Начальное значение | none |
|---|---|
| Применяется к | контейнерам со скроллом |
| Наследуется | нет |
| Вычисленное значение |
none или упорядоченный список идентификаторов |
| Тип анимации | Не анимируемо |
Формальный синтаксис
scroll-timeline-name =
[ none | <dashed-ident> ]#
Примеры
Создание анимации с именным временным отрезком прокрутки
В этом примере временной отрезок прокрутки с именем --squareTimeline определяется с помощью свойства scroll-timeline-name на элементе с ID container. Затем это применяется к анимации на элементе #square с помощью animation-timeline: --squareTimeline.
HTML
HTML для примера показан ниже.
<div id="container"> <div id="square"></div> <div id="stretcher"></div> </div>
CSS
CSS для контейнера задаёт его как источник временного отрезка прокрутки с именем --squareTimeline с помощью свойства scroll-timeline-name. Ось скролла (ось скролла) здесь не определена, поскольку используется вертикальная ось по умолчанию.
Высота контейнера установлена в 300px, и контейнер также настроен на создание вертикальной полосы прокрутки, если он выходит за пределы контейнера (правило CSS height на элементе stretcher ниже приводит к тому, что содержимое выходит за пределы контейнера).
#container {
height: 300px;
overflow-y: scroll;
scroll-timeline-name: --squareTimeline;
position: relative;
}
CSS ниже определяет квадрат, который вращается в соответствии со временным отрезком, предоставленным свойством animation-timeline, которое установлено на временной отрезок --squareTimeline с именем выше.
#square {
background-color: deeppink;
width: 100px;
height: 100px;
margin-top: 100px;
animation-name: rotateAnimation;
animation-duration: 1ms; /* Firefox requires this to apply the animation */
animation-timeline: --squareTimeline;
position: absolute;
bottom: 0;
}
#stretcher {
height: 600px;
background: #dedede;
}
@keyframes rotateAnimation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
Правило CSS stretcher задаёт высоту блока в 600px, что создаёт содержимое, выходящее за пределы контейнера, тем самым создавая полосы прокрутки. Без этого элемента содержимое не выходило бы за пределы контейнера, не было бы полосы прокрутки, а значит, и временного отрезка прокрутки для связи с временным отрезком анимации.
Результат
Прокрутите вертикальную полосу, чтобы увидеть, как квадрат анимируется при прокрутке.
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
scroll-timeline-name |
115 | 115 | 111["Синтаксис сокращённого свойства использует фиксированный порядок: имя, а затем ось.", "Правило `@scroll-timeline` заменено на свойства `scroll-timeline-name`, `scroll-timeline-axis` и сокращённое свойство `scroll-timeline`."] |
101 | Нет | 115 | Нет | 77 | Нет | 23.0 | 115 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-timeline-name