@view-transition
Ограниченная доступность
Эта функция не относится к базовому уровню, поскольку она не работает в некоторых из самых широко используемых браузеров.
Экспериментальная версия: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров.
@view-transition CSS правило используется для включения текущего и целевого документов в процесс перехода отображения в случае перехода между документами.
Для работы перехода отображения между документами текущий и целевой документы перехода должны быть на одном источнике.
Синтаксис
@view-transition {
navigation: auto;
}
Дескрипторы
-
Указывает, какое влияние это правило окажет на поведение перехода отображения документа. Возможные значения:
-
auto: Документ будет участвовать в переходе отображения при навигации, если навигация происходит на одном источнике, без перенаправлений с разных источников, и ееnavigationTypeявляетсяtraverse,pushилиreplace. В случаеpushилиreplace, навигация должна быть инициирована пользователем, взаимодействующим с содержимым страницы, а не функцией пользовательского интерфейса браузера. -
none: Документ не будет участвовать в переходе отображения.
-
Формальный синтаксис
@view-transition =
@view-transition { <declaration-list> }
Примеры
Переход отображения страницы
Следующие примеры кода демонстрируют ключевые концепции, используемые в демо-приложении перехода страницы. Демо-приложение использует переходы отображения между документами; полусекундный переход, который происходит при навигации между двумя страницами сайта. Полный демонстрационный пример можно посмотреть в демо-приложении перехода отображения многостраничного приложения.
Правило @view-transition указано в CSS для текущего и целевого документов перехода, чтобы они оба участвовали в переходе отображения:
@view-transition {
navigation: auto;
}
В дополнение к правилу @view-transition мы определяем две @keyframe анимации и используем сокращенное свойство animation, чтобы применить эти ключевые кадры анимации к элементам на выходящей (::view-transition-old()) и входящей (::view-transition-new()) страницах, которые мы хотим анимировать.
/* Create a custom animation */
@keyframes move-out {
from {
transform: translateY(0%);
}
to {
transform: translateY(-100%);
}
}
@keyframes move-in {
from {
transform: translateY(100%);
}
to {
transform: translateY(0%);
}
}
/* Apply the custom animation to the old and new page states */
::view-transition-old(root) {
animation: 0.4s ease-in both move-out;
}
::view-transition-new(root) {
animation: 0.4s ease-in both move-in;
}
Посмотрите это демо-приложение перехода многостраничного приложения в действии.
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
@view-transition |
126 | 126 | Нет | 112 | превью | 126 | Нет | 83 | Нет | Нет | 126 |
См. также
© 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/@view-transition