Noty.closeAll()

Метод Noty.closeAll() используется для закрытия всех уведомлений, созданных с помощью библиотеки Noty. Он является статическим и вызывается непосредственно через объект Noty, без необходимости иметь ссылку на конкретный экземпляр уведомления. Этот метод особенно полезен для очистки интерфейса от всех активных уведомлений одновременно, например, при смене страницы или выполнении критического действия, после которого старые уведомления теряют актуальность.


Синтаксис

Noty.closeAll([animation]);

Параметры:

  • animation (необязательный, boolean) – определяет, будет ли закрытие уведомлений сопровождаться анимацией.

    • true – уведомления закрываются с эффектом анимации.
    • false – уведомления исчезают мгновенно. По умолчанию используется true.

Пример вызова:

Noty.closeAll(); // закрывает все уведомления с анимацией
Noty.closeAll(false); // мгновенно закрывает все уведомления

Принцип работы

Метод Noty.closeAll() перебирает массив всех активных уведомлений, хранящийся в внутренней структуре Noty, и вызывает метод .close() для каждого из них. Если передан параметр animation: false, метод игнорирует анимацию при закрытии.

Под капотом процесс выглядит так:

  1. Проверяется наличие активных уведомлений.
  2. Для каждого уведомления вызывается .close().
  3. Внутренний массив уведомлений очищается после завершения закрытия.

Примеры использования

Закрытие всех уведомлений при клике на кнопку:

document.getElementById('clear-notifications').addEventListener('click', function() {
    Noty.closeAll();
});

Закрытие всех уведомлений без анимации перед редиректом:

Noty.closeAll(false);
window.location.href = '/new-page';

Применение вместе с таймером:

setTimeout(function() {
    Noty.closeAll();
}, 5000); // через 5 секунд закрывает все уведомления

Отличие от закрытия отдельных уведомлений

Метод .close() вызывается для отдельного экземпляра уведомления:

let notification = new Noty({ text: 'Привет', type: 'info' }).show();
notification.close();

В отличие от этого, Noty.closeAll() не требует ссылки на конкретный объект и закрывает все уведомления одновременно, что делает его более удобным для глобальных операций.


Важные нюансы

  • Noty.closeAll() не создаёт новые уведомления; он лишь управляет уже существующими.
  • Метод корректно работает с уведомлениями любого типа (alert, success, error, warning, info).
  • Анимация при закрытии может зависеть от CSS-анимаций, заданных при инициализации Noty (animation: { open: 'animated bounceIn', close: 'animated bounceOut' }).
  • Если уведомлений нет, вызов Noty.closeAll() не вызовет ошибок и завершится безопасно.

Практические советы

  • Использовать Noty.closeAll() при смене контекста приложения, чтобы предотвратить появление устаревших уведомлений.
  • Совместно с таймером закрытия (timeout) можно создать эффект автоматической очистки уведомлений через заданный интервал.
  • При динамическом контенте, где уведомления могут накладываться, применение Noty.closeAll(false) позволяет мгновенно очистить экран без анимационных задержек.

Метод Noty.closeAll() обеспечивает быстрый и эффективный способ управления уведомлениями, поддерживая чистоту интерфейса и предотвращая накопление устаревших сообщений.