Для всплывающих окон выделен класс Modal (файл public/js/ui/Modal.js). Вам необходимо реализовать управление данными окнами.
Пример HTML-кода всплывающего окна (такие всплывающие окна вы можете найти в коде страницы index.html):
<div class="modal fade in" id="modal-new-account">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
<span aria-hidden="true">×</span></button>
<h4 class="modal-title">Новый аккаунт</h4>
</div>
<div class="modal-body">
<form class="form" id="new-account-form">
<div class="form-group">
<input type="text" class="form-control" placeholder="Название" name="name" required>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">Закрыть</button>
<button type="submit" class="btn btn-primary" form="new-account-form">Создать</button>
</div>
</div>
</div>
</div>
В коде есть элементы с атрибутами data-dismiss со значением modal. Эти элементы закрывают окно.
Пример работы класса
const element =
modal = new Modal( element );
Состоит из 6 частей:
- Конструктора
- open открывает окно
- close закрывает окно
- onClose срабатывает при нажатии на кнопку «Закрыть»
- registerEvents задаёт обработчик нажатия на кнопки «Закрыть».
Важные детали:
- Если передан пустой элемент в конструктор, должна быть выброшена ошибка.
- Сохраните переданный элемент в свойство element
- Вызовите метод registerEvents()
Открывает всплываюее окно. В контейнер (свойство element) устанавливает css-свойство display со значением block.
Закрывает всплывающее окно. В контейнере (свойство element) удаляет css-свойство display.
Срабатывает после нажатия на элементы, закрывающие окно. Закрывает текущее окно используя метод close()
Находит внутри контейнера (свойство element) все элементы, которые имеют атрибут data-dismiss со значением modal. Устанавливает обработчик событий для этих элементов, которые вызывают метод onClose().
Показать
В CSS есть селектор, который можно использовать для поиска кнопки, закрывающей всплывающее окно:
<input name="bobik" type="text">
/* найти элемент с */
[name="bobik"] {
color: black;
}
Вы можете использовать эту конструкцию для поиска элементов в JavaScript
Не забывайте, что некоторые элементы, закрывающие окно могут быть ссылками и оказывать нежелательный эффект перехода на другую страницу.