Метод destroy является одним из ключевых инструментов
управления жизненным циклом fullPage.js. Он используется для полного
удаления функционала библиотеки с текущей страницы, включая все события,
стили и изменения DOM, внесённые fullPage.js, при этом оставляя исходный
HTML-код без изменений.
fullpage_api.destroy(all);
all — логическое значение (true или
false).
true — удаляет все изменения, включая стили
inline, добавленные библиотекой, а также возвращает
структуру страниц к исходному состоянию.false — отключает функционал прокрутки, но сохраняет
структуру DOM, позволяя при необходимости повторно инициализировать
fullPage.js.Метод destroy чаще всего используется в следующих
сценариях:
Динамическая подгрузка контента Когда структура страницы изменяется динамически (например, подгружается новый контент через AJAX), полный пересозданный скролл требуется для корректного отображения.
// Удаляем fullPage.js перед изменением DOM
fullpage_api.destroy(true);
// Вносим изменения в структуру страниц
document.querySelector('#section1').innerHTML = "<p>Новый контент</p>";
// Повторная инициализация
new fullpage('#fullpage', { autoScrolling: true });Адаптивные сценарии В мобильных версиях сайта иногда необходимо отключать fullPage.js для улучшения UX, когда вертикальная прокрутка естественным образом заменяет секции.
if (window.innerWidth < 768) {
fullpage_api.destroy(true);
}Переключение между режимами прокрутки
Возможность включать и отключать fullPage.js без перезагрузки страницы
делает метод destroy незаменимым при реализации
переключателей между стандартной прокруткой и “полнопанельным”
режимом.
При вызове destroy(true) fullPage.js выполняет следующие
действия:
fp-enabled с контейнера
#fullpage.fp-section, fp-tableCell и
другие вспомогательные классы, добавленные библиотекой.transform,
height, overflow, добавленные для секций и
контейнеров.fp-nav) и стрелки.Если передать false, визуальные изменения останутся, а
функционал скролла будет отключён, что позволяет временно заморозить
библиотеку без полного отката структуры DOM.
Метод destroy часто используется вместе с
reBuild или динамической инициализацией fullPage.js для
плавного обновления страницы.
// Разрушаем текущую инициализацию
fullpage_api.destroy(true);
// Обновляем структуру секций
const newSection = document.createElement('div');
newSection.classList.add('section');
newSection.innerHTML = '<h2>Новая секция</h2>';
document.querySelector('#fullpage').appendChild(newSection);
// Перезапускаем fullPage.js
new fullpage('#fullpage', {
autoScrolling: true,
navigation: true
});
destroy нельзя использовать до полной
инициализации fullPage.js, иначе вызов не будет иметь эффекта.destroy(true) все события библиотеки будут
удалены, поэтому любые слушатели, зависящие от afterLoad
или onLeave, также перестанут работать.destroy(false) или переключение autoScrolling
через API, чтобы избежать лишней переработки DOM.responsiveWidth и
responsiveHeight часто вызывают destroy при
срабатывании условий адаптивности, чтобы предотвратить конфликты с
обычной прокруткой.Метод destroy обеспечивает полное удаление функционала
fullPage.js, возвращая страницу к исходному состоянию или временно
отключая библиотеку. Его грамотное использование позволяет создавать
динамические и адаптивные интерфейсы без потери стабильности прокрутки и
структуры секций.