Управление прокруткой

Сброс прокрутки

При перемещении между страницами Inertia имитирует поведение браузера по умолчанию, автоматически сбрасывая положение прокрутки тела документа (а также любых областей прокрутки, которые Вы определили), обратно наверх. Кроме того, Inertia отслеживает положение прокрутки каждой страницы и автоматически восстанавливает это положение прокрутки при перемещении вперед и назад в истории.

Сохранение прокрутки

Иногда желательно предотвратить сброс прокрутки по умолчанию при посещении. Вы можете отключить это поведение, используя опцию preserveScroll при ручном посещении.

Inertia.visit(url, { preserveScroll: true })

Вы также можете лениво оценить параметр preserveScroll на основе ответа, предоставив обратный вызов.

Inertia.post('/users', data, {
  preserveScroll: (page) => Object.keys(page.props.errors).length,
})

Вы также можете сохранить позицию прокрутки с помощью ссылок Inertia используя атрибут preserve-scroll.

<inertia-link href="/" preserve-scroll>Главная</inertia-link>
Компонент <inertia-link> автоматически регистрируется плагином Inertia.

Области прокрутки

Если Ваше приложение не использует прокрутку документа, но вместо этого имеет прокручиваемые элементы (используя свойство CSS overflow), сброс прокрутки не будет работать. В этих ситуациях Вы должны указать Inertia, какими прокручиваемыми элементами нужно управлять, добавив атрибут scroll-region.

<div class="overflow-y-auto" scroll-region>
  <!-- Содержание Вашей страницы -->
</div>