Инициализация экземпляра Smooth Scroll в JavaScript начинается с
вызова метода init(), который подготавливает библиотеку к
управлению плавной прокруткой страницы. Метод отвечает за связывание
ссылок с соответствующими якорями и установку всех необходимых
параметров анимации, включая скорость, смещение и поведение при
навигации.
Для работы с библиотекой необходимо создать объект Smooth Scroll, передав в конструктор селектор ссылок и опции конфигурации:
const scroll = new SmoothScroll('a[href^="#"]', {
speed: 800,
offset: 100,
easing: 'easeInOutCubic',
});
'a[href^="#"]' — CSS-селектор, определяющий элементы,
которые будут реагировать на плавную прокрутку.speed — время анимации в миллисекундах.offset — смещение от верхнего края окна браузера после
прокрутки.easing — функция сглаживания движения, контролирующая
скорость на разных участках анимации.init()Метод init() применяется для активации Smooth Scroll
после создания экземпляра:
scroll.init();
Он выполняет следующие действия:
click на ссылки, предотвращая стандартное поведение
браузера и вызывая кастомную анимацию.offset и
easing.updateURL: true).При вызове init() можно полагаться на конфигурацию,
переданную при создании экземпляра. Ключевые опции:
speedAsDuration — если
true, скорость прокрутки будет восприниматься как
фиксированное время, а не как пропорциональное расстоянию.clip — обрезает значение прокрутки,
чтобы элемент не уходил за верхний край окна.easingPattern — позволяет использовать
кастомные функции easing, например:function easeOutQuart(t, b, c, d) {
t /= d;
t--;
return -c * (t*t*t*t - 1) + b;
}
В последних версиях Smooth Scroll поддерживается автоматическая
инициализация, когда метод init() вызывается сразу после
подключения скрипта. Пример:
document.addEventListener('DOMContentLoaded', function() {
const scroll = new SmoothScroll('a[href^="#"]');
scroll.init();
});
Это гарантирует, что все элементы DOM будут загружены до привязки событий.
Если на страницу добавляются новые якорные ссылки после первичной
инициализации, необходимо вызвать refresh() экземпляра:
scroll.refresh();
Метод повторно сканирует DOM и привязывает обработчики к новым элементам. Без этого новые ссылки не будут реагировать на плавную прокрутку.
init()const scroll = new SmoothScroll('a[href^="#"]', {
updateURL: false
});
scroll.init();
const scroll = new SmoothScroll('a[href^="#"]', {
offset: (anchor, toggle) => {
if (anchor.id === 'top') return 0;
return 50;
}
});
scroll.init();
const scroll = new SmoothScroll('a[href^="#"]', {
speed: 600,
easing: 'easeInOutCubic'
});
scroll.init();
// Дополнительно можно синхронизировать с кастомной подсветкой меню
document.querySelectorAll('a[href^="#"]').forEach(link => {
link.addEventListener('click', () => highlightMenu(link));
});
init() необходимо вызывать после создания
экземпляра и после полной загрузки DOM.init(). Для изменения параметров после инициализации
требуется пересоздание экземпляра.init() не возвращает значение, его задача
исключительно подготовка и активация скрипта.Метод init() является ключевым элементом работы с Smooth
Scroll, обеспечивая корректную привязку ссылок, обработку анимации и
управление навигацией на странице. Он позволяет гибко настраивать
поведение прокрутки через опции и легко интегрируется в динамические
интерфейсы.