Bootstrap — плагин для модальных окон

Модальное окно это дочернее окно, которое наслаивается над его родительское окно. Как правило, цель состоит в том, чтобы отобразить содержимое из отдельного источника, который может иметь некоторое взаимодействие, не выходя из родительского окна. Дочерние окна могут предоставить информацию, взаимодействие, или что-то другое.
Если вы хотите включить эту функциональность плагина в отдельности, то вам нужен modal.js. В противном случае, как уже упоминалось в главе Обзор плагинов Bootstrap, вы можете включить bootstrap.js или минимизированный bootstrap.min.js.
Применение
Вы можете включить скрытое содержание с помощью плагина модального окна:
- С помощью атрибутов данных — набор атрибутов data-toggle=»modal» на элементе контроллера, как кнопка или ссылка, вместе с data-target=»#identifier» или href=»#identifier» для нацеливания на определенную модальность (с ID = «идентификатор») для переключения.
- С помощью JavaScript — Используя эту технику, вы можете вызвать модальное окно с идентификатором = «identifier» с одной строкой JavaScript:
$('#identifier').modal(options)
Пример
Пример статического модального окна показан в следующем примере:
<h2>Пример создания модальный формы с начальной загрузкой в Twitter Bootstrap</h2> <!-- Кнопка запуска модального окна --> <button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal"> Запуск демо </button> <!-- Modal --> <div class = "modal fade" id = "myModal" tabindex = "-1" role = "dialog" aria-labelledby = "myModalLabel" aria-hidden = "true"> <div class = "modal-dialog"> <div class = "modal-content"> <div class = "modal-header"> <button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true"> × </button> <h4 class = "modal-title" id = "myModalLabel"> Это название модального окна </h4> </div> <div class = "modal-body"> Добавьте сюда какой-нибудь текст </div> <div class = "modal-footer"> <button type = "button" class = "btn btn-default" data-dismiss = "modal"> Закрыть </button> <button type = "button" class = "btn btn-primary"> Внести изменения </button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal -->
Детали предыдущего кода:
- Чтобы вызвать модальное окно, вам нужно иметь какой-то триггер. Вы можете использовать кнопку или ссылку. Здесь мы использовали кнопку.
- Если посмотреть в коде выше, вы увидите, что в теге <button>, то data-target = «#myModal» является модальным объектом, который вы хотите загрузить на этой странице. Этот код позволяет создать несколько модальных окон на странице, а затем различные триггеры для каждого из них. Теперь, чтобы было ясно, вы не загружаете несколько модальных окон в одно и то же время, но вы можете создать много на страницах, которые будут загружены в разное время.
- Есть два класса, чтобы принять к сведению в модальном окне:
- Первый .modal, который просто определяет содержание <div> как modal.
- И второе — это класс .fade. Когда модальное окон переключается, ее содержимое исчезают, и наоборот.
- aria-labelledby=»myModalLabel», ссылка на атрибут заголовка модального окна.
- Атрибут aria-hidden=»true» используется для того, чтобы сохранить модальное окно невидимым до появления триггера (как нажатие на соответствующую кнопку).
- <div class = «modal-header»>, modal-header для класса, чтобы определить стиль для заголовка модального окна.
- class = «close», это CSS для закрытия, который задает стиль для кнопки «close» в модальном окне.
- data-dismiss = «modal», является настраиваемым атрибутом данных в HTML5. Здесь используется для закрытия модального окна.
- class = «modal-body», это CSS-класс из начальной загрузки CSS, задает стиль для тела модального окна.
- class = «modal-footer», это CSS-класс из начальной загрузки CSS, задает стиль для нижней части модального окна.
- data-toggle = «modal», в HTML5 пользовательские данные атрибута data-toggle используется, чтобы открыть модальное окно.
Опции
Есть определенные параметры, которые можно передать через атрибуты данных или JavaScript, чтобы настроить внешний вид модального окна. В следующей таблице перечислены параметры:
Имя параметра | Тип/Значение по умолчанию | Данные имя атрибута | Описание |
---|---|---|---|
backdrop | логическое или строка «static» Значения по умолчанию: true | data-backdrop | Укажите static для фона, если вы не хотите чтобы модальное окно было закрыто, когда пользователь щелкает за пределами модального окна. |
keyboard | логическое. По умолчанию: true | data-keyboard | Закрывает модальное окно при нажатии кнопки Закрыть; значение false, чтобы отключить. |
show | логическое. По умолчанию: true | data-show | Показывает модальное окно при инициализации. |
remote | Путь по умолчанию: false | data-remote | Использование JQuery метода .load, внедрить содержимое в модальное тело. Если HREF с действительной URL добавлен, он будет загружать содержимое. Пример этого показан ниже:<a data-toggle = "modal" href = "remote.html" data-target = "#modal">Нажмите на меня</a>
|
Методы
Вот некоторые полезные методы, которые могут быть использованы с modal().
метод | Описание | пример |
---|---|---|
Параметры — .modal(options) | Активизирует свое содержание как модальное окно. Принимает необязательный объект опций. | $('#identifier').modal({ keyboard: false }) |
Переключение — .modal( ‘toggle’) | Вручную переключает модальность. | $('#identifier').modal('toggle') |
Показать — .modal(‘show’) | Вручную открывает модальное. | $('#identifier').modal('show') |
Скрыть — .modal(‘hide’) | Вручную скрывает модальность. | $('#identifier').modal('hide') |
Пример
Следующий пример демонстрирует использование методов:
<h2>Пример использования методов модального плагина</h2> <!-- Кнопка модального триггера --> <button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal"> Запуск демо </button> <!-- Modal --> <div class = "modal fade" id = "myModal" tabindex = "-1" role = "dialog" aria-labelledby = "myModalLabel" aria-hidden = "true"> <div class = "modal-dialog"> <div class = "modal-content"> <div class = "modal-header"> <button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true"> × </button> <h4 class = "modal-title" id = "myModalLabel"> Это название модального окна </h4> </div> <div class = "modal-body"> Нажмите кнопку ESC для выхода. </div> <div class = "modal-footer"> <button type = "button" class = "btn btn-default" data-dismiss = "modal"> Закрыть </button> <button type = "button" class = "btn btn-primary"> Внести изменения </button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <script> $(function () { $('#myModal').modal({ keyboard: true })}); </script>
Просто нажмите на кнопку Esc и модальное окно закроется.
События
В следующей таблице перечислены события для работы с модальным окнами. Эти события могут быть использованы для подключения в функцию.
Мероприятие | Описание | пример |
---|---|---|
show.bs.modal | Откроется после вызова метода show. | $('#identifier').on('show.bs.modal', function () { // сделать кое-что… }) |
shown.bs.modal | Возникает, когда модальное окно было сделано видимым для пользователя (будет ждать CSS переходы для завершения). | $('#identifier').on('shown.bs.modal', function () { // сделать кое-что… }) |
hide.bs.modal | Возникает, когда метод hide экземпляра был вызван. | $('#identifier').on('hide.bs.modal', function () { // сделать кое-что… }) |
hidden.bs.modal | Возникает, когда модальное окно было скрыто от пользователя. | $('#identifier').on('hidden.bs.modal', function () { // сделать кое-что… }) |
Пример
Следующий пример демонстрирует использование событий:
<h2>Пример использования событий модального плагина</h2> <!-- Кнопка модального триггера --> <button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal"> Запуск демо </button> <!-- Modal --> <div class = "modal fade" id = "myModal" tabindex = "-1" role = "dialog" aria-labelledby = "myModalLabel" aria-hidden = "true"> <div class = "modal-dialog"> <div class = "modal-content"> <div class = "modal-header"> <button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true"> × </button> <h4 class = "modal-title" id = "myModalLabel"> Это название модального окна </h4> </div> <div class = "modal-body"> Нажмите на кнопку закрытия, чтобы проверить функциональность события. </div> <div class = "modal-footer"> <button type = "button" class = "btn btn-default" data-dismiss = "modal"> Закрыть </button> <button type = "button" class = "btn btn-primary"> Внести изменения </button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <script> $(function () { $('#myModal').modal('hide')})}); </script> <script> $(function () { $('#myModal').on('hide.bs.modal', function () { alert('Эй, я слышал, ты любишь модалы...');}) }); </script>
Как видно на приведенном выше экране, если нажать на кнопку Close, т.е. событие hide, отображается предупреждающее сообщение.