Bootstrap - Пример модального окна
Что такое модальное окно?
Здравствуйте, будущие веб-разработчики! Сегодня мы окунёмся в захватывающий мир модальных окон Bootstrap. Как ваш доброжелательный компьютерный учитель, я здесь, чтобы провести вас через это путешествие, шаг за шагом. Так что возьмите своё любимое питьё, устроитесь поудобнее, и отправляйтесь в это модальное приключение вместе со мной!
Определение и назначение
Модальное окно в веб-разработке — это что-то вроде всплывающего окна, которое появляется поверх текущей страницы. Это великолепный способ отображения контента, не переходя с текущего вида. Представьте, что вы читаете статью, и вдруг вам нужно больше информации о конкретном термине. Вместо того чтобы открывать новую страницу, модальное окно может появиться с дополнительными деталями, позволяя вам быстро вернуться к чтению. Замечательно, правда?
Bootstrap, наш надёжный друг в веб-дизайне, предоставляет отличный модальный компонент, который легко использовать и который можно легко настроить. Давайте разберём, как его implementировать!
Основная структура модального окна
HTML структура
Давайте начнём с базовой HTML структуры модального окна Bootstrap:
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Заголовок модального окна</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Текст основного содержимого модального окна.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Закрыть</button>
<button type="button" class="btn btn-primary">Сохранить изменения</button>
</div>
</div>
</div>
</div>
Давайте разберём это:
- Внешний
<div>
с классомmodal
является контейнером для всего нашего модального окна. - Внутри мы имеем
modal-dialog
, который центрирует содержимое модального окна. -
modal-content
содержит само содержимое модального окна. - У нас есть три основные секции:
-
modal-header
: содержит заголовок и кнопку关闭. -
modal-body
: где идёт основное содержимое. -
modal-footer
: обычно содержит кнопки действий.
-
Вызов модального окна
Теперь, как сделать так, чтобы это модальное окно появилось? Нам нужно спусковой механизм! Это обычно кнопка:
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Запустить демонстрационное модальное окно
</button>
Обратите внимание на data-toggle="modal"
и data-target="#exampleModal"
. Это говорит Bootstrap что делать (переключить модальное окно) и какое модальное окно 显示 (тот, у которого id "exampleModal").
Не забудьте добавить id
к вашему модальному окну, чтобы он соответствовал data-target
:
<div class="modal" id="exampleModal" tabindex="-1" role="dialog">
<!-- Содержимое модального окна -->
</div>
Настройка вашего модального окна
Размеры
Bootstrap позволяет легко изменить размер вашего модального окна. Просто добавьте класс к modal-dialog
:
<!-- Маленькое модальное окно -->
<div class="modal-dialog modal-sm">...</div>
<!-- Большое модальное окно -->
<div class="modal-dialog modal-lg">...</div>
<!-- Очень большое модальное окно -->
<div class="modal-dialog modal-xl">...</div>
Выровненное по центру модальное окно
Хотите, чтобы ваше модальное окно было идеально выровнено по центру? Добавьте класс modal-dialog-centered
:
<div class="modal-dialog modal-dialog-centered">...</div>
Прокручиваемое модальное окно
Если содержимое вашего модального окна велико, вы можете сделать его прокручиваемым:
<div class="modal-dialog modal-dialog-scrollable">...</div>
Добавление функциональности с помощью JavaScript
Хотя атрибуты данных Bootstrap великолепны для базовой функциональности, иногда вам нужно больше контроля. Вот где comes JavaScript!
// Показать модальное окно
$('#exampleModal').modal('show');
// Скрыть модальное окно
$('#exampleModal').modal('hide');
// Переключить модальное окно
$('#exampleModal').modal('toggle');
Вы также можете listen за событиями модального окна:
$('#exampleModal').on('shown.bs.modal', function () {
console.log('Модальное окно теперь видимо!');
})
Практический пример: модальное окно "Подтвердить удаление"
Давайте соберём всё вместе с реальным примером. Представьте, что мы создаём приложение для списка задач, и мы хотим confirm перед удалением задачи:
<!-- Кнопка удаления -->
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#deleteModal">
Удалить задачу
</button>
<!-- Модальное окно -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalLabel">Подтвердить удаление</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Вы уверены, что хотите удалить эту задачу? Это действие неудаляемо.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Отмена</button>
<button type="button" class="btn btn-danger" id="confirmDelete">Удалить</button>
</div>
</div>
</div>
</div>
А вот и JavaScript для обработки удаления:
$('#confirmDelete').on('click', function() {
// Код для удаления задачи идёт сюда
console.log('Задача удалена!');
$('#deleteModal').modal('hide');
});
Заключение
Поздравляю! Вы только что узнали всё о модальных окнах Bootstrap. От базовой структуры до настройки и даже практического примера, вы теперь equipped для добавления этой мощной функции в ваши веб-проекты.
Помните, что практика makes perfect. Попробуйте создать разные типы модальных окон, экспериментируйте с размерами и выравниванием, и, самое главное, получайте удовольствие! Кто знает, может быть, вы станете "Мастером модальных окон" среди своих друзей-программистов.
Счастливого кодирования, и пусть ваши модальные окна всегда appear в нужный момент!
Credits: Image by storyset