scroll-to
Плавный скролл до элемента с поддержкой нативного события scrollend и гибкой настройкой отступов.
Использование
import { scrollTo } from '@advdominion/scroll-to';
// Базовый скролл до элемента
await scrollTo(document.querySelector('#example'));
// Скролл с отступом 100px (например, для фиксированной шапки)
await scrollTo(document.querySelector('#example'), 100, true);
// Скролл с отступом в 10% от высоты экрана
await scrollTo(document.querySelector('#example'), 10);
Параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| $el | HTMLElement |
— | DOM-элемент, к которому нужно прокрутить страницу |
| offset | number |
0 |
Величина отступа сверху от целевого элемента |
| offsetInPx | boolean |
false |
Тип отступа: true — в пикселях, false — в процентах от высоты вьюпорта |
Как это работает
- Точность: Использует нативное событие
scrollend, которое срабатывает строго после завершения анимации прокрутки. - Безопасность: Если браузер не поддерживает
scrollendили анимация прервана, сработает автоматический fallback через 1500 мс. - Плавность: Использует нативный
behavior: 'smooth'. - Очистка данных: Автоматически удаляет слушатели событий и таймеры после завершения или отмены скролла.