0Pricing
CSS Academy · Урок

API переходов между представлениями

Создавайте плавные анимации переходов между страницами и элементами с помощью API View Transitions CSS.

«API переходов между представлениями» — бесплатный урок CSS Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.

Что такое программный интерфейс переходов представлений?

Программный интерфейс переходов представлений (Chrome 111 и новее) обеспечивает плавные анимированные переходы между разными состояниями страницы или между переходами на другие страницы. Он создаёт снимки экрана до и после изменения и преобразует один в другой с помощью анимаций CSS, позволяя делать переходы в вебе похожими на переходы в приложениях.

Переходы внутри одного документа

Запустите переход внутри одной страницы, обернув обновление DOM в document.startViewTransition(() => updateDom()). Браузер сохраняет старое состояние, выполняет обновление, сохраняет новое состояние и автоматически плавно смешивает их.

<button id="update-btn">Update Content</button>
<div class="content">Before update</div>

Плавное смешивание по умолчанию

Без какого-либо CSS программный интерфейс переходов представлений выполняет простое плавное смешивание между старым и новым состоянием страницы. Эта единственная строка JavaScript добавляет качественный переход, для которого раньше требовались сложная координация анимаций CSS или отдельная библиотека анимаций.

Псевдоэлементы CSS

Программный интерфейс предоставляет четыре псевдоэлемента: ::view-transition (корневой слой поверх страницы), ::view-transition-old(root) (снимок старой страницы), ::view-transition-new(root) (снимок новой страницы) и ::view-transition-image-pair(root). Настраивайте их с помощью анимаций CSS.

Именованные переходы с помощью свойства имени перехода представления

Назначьте view-transition-name: hero-image элементу, который сохраняется во время перехода. Программный интерфейс плавно преобразует этот элемент из его старого положения и размера в новые положение и размер, автоматически создавая плавную анимацию на уровне элемента.

<div class="hero-img"></div>

Пользовательские анимации

Переопределите плавное смешивание по умолчанию собственными ключевыми кадрами для псевдоэлементов: задайте появление справа при переходе вперёд и слева при возврате. Нацельте @keyframes на ::view-transition-new(root) и ::view-transition-old(root).

Переходы MPA (программный интерфейс навигации)

Междокументные переходы представлений (Chrome 126 и новее) анимируют переходы между полными страницами в многостраничных приложениях. Добавьте @view-transition { navigation: auto; } в CSS — браузер автоматически обработает переход между HTML-страницами, и JavaScript не понадобится.

Доступность: учёт предпочтений движения

Пользователи с нарушениями вестибулярного аппарата не должны сталкиваться с переходами, содержащими много движения. Оберните анимации переходов в @media (prefers-reduced-motion: no-preference), чтобы отключать пользовательские анимации для тех, кто предпочитает уменьшенное движение, сохраняя при этом функциональное обновление DOM.

<p>This rule targets browser-generated <code>::view-transition-old(root)</code> and <code>::view-transition-new(root)</code> pseudo-elements &mdash; visible only during an active view transition, not in a static preview.</p>

Интеграция с фреймворками SPA

React Router версии 6.4 и новее, Vue Router и Astro поддерживают переходы представлений. Фреймворки автоматически оборачивают изменения маршрута в startViewTransition. Настройте стили переходов для каждого маршрута с помощью свойства имени перехода представления на сохраняющихся элементах, таких как навигация и оболочки макета.

Соображения по производительности

Переходы представлений создают снимки экрана страницы, что может быть затратным для сложных макетов. На больших страницах с множеством композитных слоёв во время создания снимка могут появляться рывки. Ограничивайте длительность перехода 300 миллисекундами и избегайте переходов для чрезвычайно сложных поддеревьев.

Прогрессивное улучшение

Проверяйте доступность программного интерфейса перед использованием: if (!document.startViewTransition) { updateDom(); return; }. Запасной вариант обновляет DOM обычным образом, без анимации. Переходы представлений — это прогрессивное улучшение: приложение работает и без них, а при наличии поддержки они просто делают взаимодействие удобнее.

Проверка знаний

Что позволяет свойство имени перехода представления на элементе во время перехода представления?

Итоги

Программный интерфейс переходов представлений обеспечивает плавное смешивание и анимации преобразования между состояниями DOM или переходами между страницами с минимальным количеством кода. Именованные элементы перехода преобразуются автоматически, а пользовательские анимации псевдоэлементов заменяют плавное смешивание по умолчанию. Учитывайте настройку prefers-reduced-motion и используйте прогрессивное улучшение для браузеров без поддержки.

Часто задаваемые вопросы

Урок «API переходов между представлениями» бесплатный?

Да — полный текст урока «API переходов между представлениями» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.

Чему я научусь в уроке «API переходов между представлениями»?

Создавайте плавные анимации переходов между страницами и элементами с помощью API View Transitions CSS. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CSS Academy?

Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «API переходов между представлениями»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CSS Academy?

Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Вложенность в нативном CSS
  2. Связанный псевдокласс :has()
  3. @scope для изолированных стилей
  4. API переходов между представлениями
← Назад к CSS Academy