Метод Waypoints.disableAll предназначен для временного
отключения всех обработчиков Waypoints на странице. Это особенно полезно
в случаях, когда необходимо предотвратить срабатывание событий при
массовых изменениях DOM, анимациях или динамическом добавлении/удалении
элементов, чтобы избежать конфликтов и избыточных вызовов функций.
Waypoints.disableAll();
Метод не принимает аргументов и действует глобально на все созданные экземпляры Waypoints.
Waypoints отслеживает позицию элементов относительно видимой области
окна (viewport) и запускает определённые функции при
достижении определённого оффсета. При вызове
Waypoints.disableAll все эти обработчики перестают
реагировать на прокрутку и изменение позиции элементов.
Важно понимать, что метод не удаляет Waypoints, а
лишь временно блокирует их срабатывание. Это значит, что можно позже
вызвать метод Waypoints.enableAll, чтобы восстановить
работу всех точек.
Waypoints.disableAll();
// Добавление новых элементов с Waypoints
const newElement = document.createElement('div');
newElement.className = 'section';
document.body.appendChild(newElement);
// Повторная активация
Waypoints.enableAll();
Waypoints.disableAll();
window.scrollTo({
top: 1000,
beh * avior: 'smooth'
});
// Включение после завершения анимации
window.setTimeout(() => {
Waypoints.enableAll();
}, 1000);
Waypoint.refreshAll(). Для корректной работы сначала
рекомендуется временно отключить все Waypoints.Waypoints.disableAll();
Waypoint.refreshAll();
Waypoints.enableAll();
Waypoint.disable()Метод Waypoint.disable() отключает конкретный
экземпляр Waypoint, тогда как
Waypoints.disableAll() блокирует все точки на
странице.
Пример:
const waypoint = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) {
console.log('Сработало!');
}
});
// Отключение только этой точки
waypoint.disable();
// Глобальное отключение всех точек
Waypoints.disableAll();
Waypoints.disableAll все Waypoints
остаются в DOM и могут быть повторно включены методом
Waypoints.enableAll.scroll или resize.В сложных интерфейсах с множеством анимаций, ленивой загрузкой контента и динамическим добавлением блоков рекомендуется выстраивать следующую последовательность действий:
Waypoints.disableAll().Waypoint.refreshAll().Waypoints.enableAll().Такой подход минимизирует лишние вызовы функций и обеспечивает стабильную работу интерфейса без рывков и повторных срабатываний.
Метод Waypoints.disableAll — это ключевой инструмент
управления глобальным состоянием Waypoints на странице, обеспечивающий
контроль и оптимизацию поведения скролл-триггеров при динамических
изменениях.