При перемещении между страницами 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>
Если Ваше приложение не использует прокрутку документа, но вместо этого имеет прокручиваемые элементы (используя свойство CSS overflow
), сброс прокрутки не будет работать. В этих ситуациях Вы должны указать Inertia, какими прокручиваемыми элементами нужно управлять, добавив атрибут scroll-region
.
<div class="overflow-y-auto" scroll-region>
<!-- Содержание Вашей страницы -->
</div>