Модальные окна начальной загрузки - плагин jQuery

  1. Функции JavaScript в Bootstrap
  2. Заглушка для модальных окон - modal.js
  3. Пояснение к коду
  4. Модальные окна Bootstrap - изменение размера
  5. Управление модальными окнами с уровня jQuery
  6. конфигурация
  7. Удаленная настройка
  8. События начальной загрузки модальных окон
  9. суммирование

Недавно один из читателей этого блога задал мне вопрос о модальных окнах Bootstrap. Это побудило меня взглянуть немного в документации плагинов JQuery к начальной загрузке . Ознакомившись с этой темой, я решил, что из этого может получиться довольно интересная и полезная запись - и вот эффект :) В любом случае, удлинять нечего, так что давайте перейдем к делу!

Функции JavaScript в Bootstrap

Для начала краткое введение. В Bootstrap 3 доступно несколько расширений jQuery Bootstrap для различных вариантов взаимодействия с элементами пользовательского интерфейса. Как правило, все плагины реализованы в файле bootstrap.js (или в его «минимизированной» версии или bootstrap.min.js ), который обычно находится в структуре каталогов Bootsrap. Кроме того, вы можете скачать отдельные файлы JavaScript, содержащие код отдельных плагинов - в сегодняшнем посте я остановлюсь на плагине, который находится в файле modal.js .

Все плагины имеют API разметки HTML, то есть для базового использования нет необходимости писать одну строку кода JavaScript - вместо этого достаточно дать элементам HTML соответствующие атрибуты, доступные в упомянутом API плагина. Конечно, если возникнет такая необходимость, вы можете использовать JavaScript API и настроить функцию плагина непосредственно из JavaScript.

Полную документацию по плагинам jQuery для Bootstrap можно найти на сайте проекта ,

Заглушка для модальных окон - modal.js

Bootstrap Modal (то есть наше модальное окно Bootstrap) - это всплывающее окно JavaScript (всплывающее окно) , которое полностью настраивается и «отзывчиво». Это отличный способ легко, даже без написания кода JS, создать всплывающее окно, которое соответствует всем стандартам на веб-сайтах, созданных нами. По умолчанию это окно выглядит так:

Рисунок выше показывает, что это модальное окно имеет три раздела: заголовок, контент и кнопки. Чтобы отобразить окно, подобное приведенному выше, добавьте следующий код в HTML-код нашей страницы:

<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"> & amp; раз; </ button> <h4 class = "modal-title"> Модальное название </ 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 "> Сохранить изменения </ кнопка> </ div> </ div> <! - /.modal-content -> </ div> <! - /.modal-dialog -> </ div> <! - /.modal - ->

Пояснение к коду

Здесь стоит обратить внимание на несколько элементов. Во-первых, CSS-класс, данный элементу самого внешнего элемента div, является «модальным», что приводит к форматированию всплывающего окна и дает ему стиль отображения: none, что означает , что он невидим в начале. Второй проблемой является идентификатор «myModal» - он будет использоваться для назначения этого окна соответствующему триггеру (об этом чуть позже).

Один из внутренних элементов div имеет класс «modal-content». Именно внутри мы определяем содержимое модального окна . Как я уже упоминал, он разделен на три секции: заголовок находится внутри элемента с классом «modal-header», содержимое окна внутри элемента с классом «modal-body» и кнопки или нижний колонтитул в элементе, имеющем класс «modal-footer». Нижний колонтитул имеет стиль выравнивания по умолчанию : вправо, поэтому кнопки будут справа. Также обратите внимание на кнопку «Закрыть» - она ​​имеет атрибут data-dismis, который приводит к тому, что ее щелчок просто закрывает окно и отклоняет любые изменения. У того же атрибута есть кнопка, расположенная в заголовке - это кнопка «X» в правом верхнем углу экрана (для ее соответствующего форматирования и позиционирования соответствует класс «close»). Что касается кнопки «Сохранить изменения», то, конечно, ее подходящая обработка уже в наших руках, в зависимости от того, что должно делать модальное окно.

Я думаю, что теперь большинство модальных оконных элементов уже ясно. Я упоминал ранее о триггере модального окна . Это может быть простая ссылка или кнопка с соответствующими заданными атрибутами, что-то похожее на это ниже:

<button class = "btn btn-primary btn-lg" data-toggle = "modal" data-target = "#myModal"> Открыть модал! </ Button>

Здесь важен атрибут data-toggle, который сообщает Bootstrap, что данная кнопка открывает модальное окно, и атрибут data-target, указывающий, какой элемент должен быть открыт как это модальное окно.

Этого достаточно с основ, теперь пришло время для некоторых деталей о различных параметрах конфигурации нашего модального окна !

Модальные окна Bootstrap - изменение размера

Как и все в Bootstrap, модальные окна Bootstrap полностью реагируют и прекрасно адаптируются к изменяющимся размерам окна. Кроме того, мы можем контролировать их размер с помощью CSS-классов, предоставляемых Bootstrap. По умолчанию у нас есть два варианта: маленькое окно и большое окно. Мы можем управлять им, используя классы modal-sm (для небольшого окна) и modal-lg (для большого окна), которые мы даем элементу с классом modal-dialog из примера выше.

Конечно, это только настройки по умолчанию, которые мы можем свободно изменять, как я уже описывал в отдельная запись ,

Управление модальными окнами с уровня jQuery

Поскольку модальные окна Bootstrap представляют собой плагин jQuery , также возможно активировать, фактически создать триггер окна, с уровня JavaScript с помощью jQuery . Как правило, такая активация ничем не отличается от других плагинов jQuery - имея модальное окно, определенное в предыдущем примере, его присоединение к механизму модального окна Bootstrap выглядит примерно так:

$ ('#myModal'). модальный (варианты);

Итак, просто используйте селектор jQuery , чтобы получить ссылку на модальное окно, а затем вызовите модальный метод и передайте ему объект, содержащий опции.

конфигурация

Этот объект может иметь следующие свойства:

var options = {фон: true, клавиатура: false, show: false, remote: false};

Вот как выглядит объект option, если мы хотим определить все возможные параметры. Конечно, мы можем опустить некоторые из них - тогда будут использованы параметры по умолчанию. Ниже приводится описание отдельных параметров:

  • фон - имеет три возможных настройки: true (по умолчанию), false или «static» - первые два определяют, будет ли модальное окно иметь серый фон снизу или нет; третий параметр позволяет закрыть модальное окно, нажав на фон (это означает, что оно включено в данный момент)
  • клавиатура - возможные значения true (по умолчанию) или false ; если установлено значение true, модальное окно также будет закрыто с помощью кнопки «Esc» на клавиатуре.
  • show - также принимает логическое значение, которое означает true (по умолчанию) или false ; если эта опция включена, окно появится во время инициализации
  • remote - наиболее интересная функция, позволяющая загружать контент из другого файла в элемент modal-content ; Вы можете использовать его, чтобы передать путь к файлу или установить его значение в false, если ничего не нужно загружать (это по умолчанию)

Все вышеперечисленные параметры также могут быть установлены в коде HTML с использованием соответствующих атрибутов в соответствии со схемой data- * , то есть для удаленной настройки атрибут будет иметь форму data-remote .

Удаленная настройка

Давайте на минуту остановимся на удаленном варианте. В дополнение к двум методам, описанным выше, существует третий способ загрузки внешнего содержимого в область содержимого модального окна:

<a href= "modal-template.html" class=" btn btn-lg btn-default" data-toggle= "modal" data-target= "#largeModal"> Открыть модал </a>

Как видите, вместо использования атрибута data-remote был использован стандартный атрибут href , который в этом случае будет работать так же, как и два других метода.

«Модальный» метод также можно использовать для ручного управления отображением модального окна . Это делается следующим образом:

$ ('#myModal'). модальный («тумблер»); $ ('#myModal'). модальный («шоу»); $ ('#myModal'). модальный («спрятать»);

В первой строке мы должны переключить модальное окно, поэтому, если оно открыто в данный момент, оно будет закрыто, и наоборот. Вторая строка просто пытается показать окно, независимо от того, видно оно в данный момент или нет. Третий вариант делает что-то противоположное предыдущему, то есть он пытается скрыть окно (если оно видно, оно будет скрыто, а если нет, ничего не произойдет).

События начальной загрузки модальных окон

Bootstrap при отображении, скрытии (и т. Д.) Модальных окон вызывает несколько событий, которые мы можем обработать, используя метод on, доступный в jQuery:

$ ('#myModal'). on ('hidden.bs.modal', function (e) {alert ('Modal просто скрыт!');});

Следующие события связаны с модальными окнами:

  • show.bs.modal - вызывается непосредственно перед показом модального окна
  • show.bs.modal - вызывается сразу после показа модального окна
  • hide.bs.modal - вызывается непосредственно перед скрытием модального окна
  • hidden.bs.modal - отправляется сразу после скрытия модального окна
  • loaded.bs.modal - вызывается, когда удаленный контент загружается в область контента модального окна; это событие происходит, только если мы установили путь к удаленному контенту в опции «remote»

суммирование

Модальные окна Bootstrap - один из самых полезных плагинов для Bootstrap. Описание остальных можно найти на сайте проекта в разделе Компоненты JavaScript , Я призываю вас ознакомиться с ними и экспериментировать. На сегодня все, и я снова приглашаю вас! :)

Похожие

Руководство для начинающих по тестированию функционального JavaScript - SitePoint
Функциональное программирование и тестирование. Может быть, вы дали им попробовать в одиночку, но почему-то вы никогда не стали частью вашей обычной практики. Они могут показаться невинными сами по себе, но совместное тестирование и функциональное программирование могут создать непреодолимое искушение, почти вынуждая вас писать более чистый, надежный и более понятный код.
Плагин User Role Editor для WordPress
Добро пожаловать в редактор пользовательских ролей! Редактор ролей пользователей - часть главной панели 1 Редактор ролей пользователей - основная панель, часть 2
Модульное тестирование JavaScript с помощью Mocha и Chai
Эта статья была рецензирована Панайотис «пвгр» Велисаракос , Марк Браун а также Том Греко , Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше! Вы когда-нибудь вносили какие-то изменения в свой код, а потом обнаружили, что он
Эксперты в облаке и на сервере
УПРАВЛЕНИЕ СЕРВЕРАМИ Мы предоставляем услугу управления сервером клиента в любой точке мира. Мы обеспечиваем безопасность и техническую поддержку 24 часа в сутки. МИГРАЦИЯ
8 плагинов, которые нужно иметь, если вы ведете блог
Огромная популярность WordPress связана с m.in. с множеством плагинов, благодаря которым вы можете расширить его операции. Вот почему WordPress отлично подходит для сайтов компаний, а также (или, может быть, в первую очередь?) Блогов. Сегодня мы представляем плагины для блоггеров, которые нужно установить для разработки своего блога. Прежде чем перейти к списку плагинов, обратите внимание. Если вы ищете плагины, которые
Управление PDF документами на iPad
Редактор Macwelt Письма, руководства, веб-страницы и многие другие файлы могут быть сохранены в формате PDF для чтения или обмена. Это также работает с iPad увеличить
Введение в сетевые функции
Windows XP Professional и Windows XP Home Edition предназначены для сетевого взаимодействия, но основной сетевой платформой является версия Professional. Если вы начнете работать с сетями, эта глава познакомит вас с этой темой. Если вам не чужды сетевая тема, эта глава обновит ваши сообщения. Концепции, связанные с сетевым взаимодействием Windows Сетевое взаимодействие не всегда должно быть сложным, хотя иногда это происходит в зависимости от приложений. Чтобы получить твердые
Steam Download Slow: Как это исправить
У многих пользователей Steam возникают проблемы при загрузке игр. Скорость загрузки их игр в Steam очень низкая, а иногда они вообще ничего не скачивают! Это очень расстраивает. Но не волнуйся! Ниже приведены некоторые исправления, которые помогли многим пользователям Steam. Вам не нужно пробовать их все; просто пройдите вниз по списку, пока не найдете тот, который работает для вас. Очистить кеш загрузки
Запуск Google Chrome в Citrix XenApp и XenDesktop
Один из самых популярных браузеров сегодня, Google Chrome, является обязательным для многих сред XenApp и XenDesktop. Google Chrome изначально был ориентирован на потребителей и настольные операционные системы при запуске, но сегодня это распространено в Enterprise, и все больше и больше администраторов внедряют этот браузер в своих средах XenApp и XenDesktop. Это привело к тому, что Google выпустила новый пакет Chrome Enterprise Bundle в 2017 году, который намного удобнее для корпоративных
Как создать продукт в стиле Hunt с использованием плагина Hunt Theme
... окончим с этим. Что такое тема поиска плагинов? Очевидно, вы уже можете сказать, что Plugin Hunt - это тема WordPress. Точнее, это тема WordPress для премиального контента, созданная Майком Скоттом из Epic Plugins. Простите, ребята; мы смотрели усердно, но не смогли найти бесплатную версию. Эта тема предоставляет вам все функции и возможности, необходимые для создания сайта курирования контента за считанные минуты,
Как подключиться к метаданным WordPress
Метаданные WordPress - это мощная структура данных, которая используется в нескольких частях WordPress. Вот почему у нас есть разные таблицы, которые используются для хранения метаданных. В этом уроке я научу вас, как подключать метаданные WordPress и решать, что с ними делать. Если я люблю что-то о разработке WordPress, то это API плагинов WordPress , Степень гибкости, которую она дает вам, чтобы подключить любую часть WordPress

Комментарии

Но подождите, где тестовые функции?
Но подождите, где тестовые функции? Что ж, когда мы опускаем второй параметр, Mocha помечает эти тесты как ожидающие в результатах теста. Это удобный способ настроить ряд тестов - что-то вроде списка задач, которые вы собираетесь написать. Давайте продолжим реализацию первого теста. description ('addClass', function () {it ('должен добавить класс к элементу', function () {var element = {className: ''}; addClass (element, 'test-class'); assert.equal (element .className,
7. Такое изменение может быть проблематичным даже для более продвинутых пользователей, не говоря уже о менее опытных владельцах сотовых телефонов?
7. Такое изменение может быть проблематичным даже для более продвинутых пользователей, не говоря уже о менее опытных владельцах сотовых телефонов? Работая в Nokia Care, я каждый день сталкиваюсь с вопросами клиентов о том, как они могут перейти с более старых платформ Nokia, таких как S40 и Symbian, на новые устройства, работающие под управлением системы Windows Phone. До сих пор это была довольно сложная процедура. Контакты можно было отправить через Bluetooth, но этот метод не
14. Нет JavaScript?
14. Нет JavaScript? Нет данных Вот еще большая проблема: не все включают Javascript. Актуальные данные по Javascript отключены ставки Трудно найти, но, вероятно, от 1 до 2% посетителей не разрешают запускать Javascript по соображениям безопасности, конфиденциальности или доступности. Если посетитель с нарушениями зрения использует программу чтения с экрана для доступа к сайту,
Какие приложения работают в режиме двойного окна?
Какие приложения работают в режиме двойного окна? Достаточно зрелым является функция разделенного экрана на Huawei Mate S и Мате 8 к сожалению, еще нет. Потому что в настоящее время поддерживаются только восемь приложений. В частности, режим двойного экрана доступен для воспроизведения сохраненных видео и фотографий, веб-браузера, приложения Memo, файлового менеджера, электронной почты, тем, калькулятора (только Mate
Почему стоит позаботиться о скорости загрузки страницы?
Почему стоит позаботиться о скорости загрузки страницы? Быстрая загрузка сайта не только влияет на SEO и пользовательский опыт о том, что я написал в записи Короткое время загрузки страницы = более высокая позиция в Google и в статье о CloudFlare , Быстрый

Или, может быть, в первую очередь?
Что такое тема поиска плагинов?
Но подождите, где тестовые функции?
7. Такое изменение может быть проблематичным даже для более продвинутых пользователей, не говоря уже о менее опытных владельцах сотовых телефонов?
7. Такое изменение может быть проблематичным даже для более продвинутых пользователей, не говоря уже о менее опытных владельцах сотовых телефонов?
14. Нет JavaScript?
14. Нет JavaScript?
Какие приложения работают в режиме двойного окна?
Почему стоит позаботиться о скорости загрузки страницы?