NavigateEvent: метод scroll()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех распространённых браузерах.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в продакшене внимательно проверьте таблицу совместимости браузеров.
Метод scroll() интерфейса NavigateEvent можно вызвать, чтобы вручную запустить поведение прокрутки, управляемое браузером, которое происходит при навигации, если вам нужно, чтобы это произошло до завершения обработки навигации.
Синтаксис
scroll()
Параметры
Нет.
Возвращаемое значение
Нет (undefined).
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если текущий
Documentещё не активен или если навигация была отменена. -
SecurityErrorDOMException -
Выбрасывается, если событие было вызвано методом
dispatchEvent(), а не пользовательским агентом.
Примеры
Обработка прокрутки с помощью scroll()
В этом примере перехвата навигации функция handler() сначала извлекает и отображает содержимое статьи, а затем извлекает и отображает дополнительное содержимое. Логично прокрутить страницу к основной статье, как только она станет доступна, чтобы пользователь мог с ней взаимодействовать, а не ждать, пока отобразится дополнительное содержимое. Для этого мы добавили вызов scroll() между двумя операциями.
navigation.addEventListener("navigate", (event) => {
if (shouldNotIntercept(navigateEvent)) {
return;
}
const url = new URL(event.destination.url);
if (url.pathname.startsWith("/articles/")) {
event.intercept({
async handler() {
const articleContent = await getArticleContent(url.pathname);
renderArticlePage(articleContent);
event.scroll();
const secondaryContent = await getSecondaryContent(url.pathname);
addSecondaryContent(secondaryContent);
},
});
}
});
Спецификации
| Спецификация |
|---|
| HTML # dom-navigateevent-scroll-dev |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
scroll |
105102–108 | 105102–108 | Нет | 9188–94 | Нет | 105102–108 | Нет | 7270–73 | Нет | 20.019.0–21.0 | 105102–108 |
См. также
- Современное клиентское маршрутизирование: API навигации
- Разъяснение API навигации
- Демонстрация API навигации Domenic Denicola's живой демонстрации
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/NavigateEvent/scroll