Метод show является основным способом отображения
модальных окон в библиотеке Micromodal. Он позволяет программно
инициировать показ модального окна, которое ранее было скрыто.
Метод show вызывается на объекте модального окна. Этот
объект создается с использованием конфигурации и инициализируется с
помощью метода Micromodal.init(). Когда необходимо показать
модальное окно, достаточно передать идентификатор модального элемента в
метод show.
Пример синтаксиса:
Micromodal.show('modal-1');
Здесь 'modal-1' — это идентификатор модального окна,
который должен совпадать с атрибутом data-micromodal-id в
HTML-разметке.
Метод show принимает два основных параметра:
id (обязательный параметр) — строка, указывающая
идентификатор модального окна, которое нужно показать. Идентификатор
должен соответствовать атрибуту data-micromodal-id в
HTML.
options (необязательный параметр) — объект, который позволяет настроить дополнительные параметры модального окна. Этот объект может включать следующие свойства:
true, прокрутка страницы будет отключена при открытии
модального окна.true,
фокус не будет перемещаться на модальное окно.true, вызов метода show будет ждать завершения
анимации закрытия предыдущего модального окна, прежде чем открыть
следующее.data-micromodal-trigger).Пример использования с дополнительными параметрами:
Micromodal.show('modal-1', {
disableScroll: true,
awaitCloseAnimation: true
});
В этом примере при открытии модального окна будет отключена прокрутка страницы, а метод подождет завершения анимации закрытия предыдущего окна перед открытием нового.
Когда вызывается Micromodal.show(), библиотека выполняет
несколько ключевых шагов:
Поиск модального окна: Метод ищет в DOM элемент с указанным идентификатором и проверяет его существование.
Добавление классов для показа: После того как элемент найден, библиотека добавляет классы, которые активируют видимость модального окна и запускают соответствующие анимации.
Блокировка прокрутки: В случае, если включен
параметр disableScroll, прокрутка страницы блокируется,
чтобы пользователь не мог прокручивать страницу за пределы модального
окна.
Фокусировка на модальном окне: Если включен
параметр disableFocus, фокус остается на элементе, с
которого было вызвано окно. В противном случае фокус автоматически
перемещается на первое доступное поле ввода внутри модального окна (если
оно присутствует).
Анимация открытия: Если модальное окно настроено с анимацией, она будет воспроизведена после применения классов для отображения.
Рассмотрим пример реализации модального окна с использованием
Micromodal.show(). В HTML создается элемент модального окна
с идентификатором modal-1:
<div data-micromodal-id="modal-1" class="modal">
<div class="modal__overlay">
<div class="modal__container">
<button data-micromodal-close class="modal__close">X</button>
<h2 class="modal__title">Модальное окно</h2>
<p class="modal__content">Текст в модальном окне.</p>
</div>
</div>
</div>
Чтобы показать это окно, можно вызвать Micromodal.show в
Jav * aScript:
Micromodal.show('modal-1');
В результате модальное окно с идентификатором modal-1
станет видимым, а страница будет зафиксирована, чтобы предотвратить
прокрутку.
В некоторых случаях может понадобиться, чтобы одно модальное окно не
открылось, пока не завершится анимация закрытия другого. Для этого
используется параметр awaitCloseAnimation:
Micromodal.show('modal-1', {
awaitCloseAnimation: true
});
Этот параметр особенно полезен, если на странице используется несколько модальных окон, и важно управлять их последовательным открытием и закрытием с учетом анимаций.
Чтобы закрыть модальное окно программно, используется метод
Micromodal.close(). Он принимает один обязательный параметр
— идентификатор модального окна, которое нужно закрыть:
Micromodal.close('modal-1');
Этот метод автоматически завершает все анимации закрытия и восстанавливает состояние страницы, например, включив прокрутку, если она была заблокирована.
Если метод show вызывается с неверным идентификатором,
например, если элемент с указанным идентификатором не существует в DOM,
будет выброшена ошибка:
Error: Modal with id "modal-1" not found.
Также важно помнить, что если модальное окно уже открыто, вызов
show с тем же идентификатором не приведет к повторному
отображению. Это гарантирует, что не произойдут конфликтующие действия с
несколькими окнами.
Метод show в библиотеке Micromodal является удобным и
гибким инструментом для управления отображением модальных окон на
веб-страницах. Он позволяет не только инициировать показ модальных окон,
но и тонко настраивать поведение в зависимости от требований
проекта.