# 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. **Очистка данных:** Автоматически удаляет слушатели событий и таймеры после завершения или отмены скролла.
