@advdominion/scroll-to
This commit is contained in:
33
packages/scroll-to/README.md
Normal file
33
packages/scroll-to/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# scroll-to
|
||||
|
||||
Плавный скролл до элемента с поддержкой нативного события `scrollend` и гибкой настройкой отступов.
|
||||
|
||||
## Использование
|
||||
|
||||
```js
|
||||
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` — в процентах от высоты вьюпорта |
|
||||
|
||||
## Как это работает
|
||||
|
||||
1. **Точность:** Использует нативное событие `scrollend`, которое срабатывает строго после завершения анимации прокрутки.
|
||||
2. **Безопасность:** Если браузер не поддерживает `scrollend` или анимация прервана, сработает автоматический fallback через 1500 мс.
|
||||
3. **Плавность:** Использует нативный `behavior: 'smooth'`.
|
||||
4. **Очистка данных:** Автоматически удаляет слушатели событий и таймеры после завершения или отмены скролла.
|
||||
Reference in New Issue
Block a user