Создание модальных окон в javascript

Модальные окна — этот термин пришел из десктопных приложений. Класс модального окна отсутствует в чистом javascript, но развитие веб-приложений требует наличия такого компонента для разработки интерфейса пользователя.

В pureJS есть такая функция как confirm(), позволяющая получить от пользователя бинарный выбор (да/нет). Но ни оформить шаблон, ни улучшить эту функцию нельзя.

Модальные окна в фреймворках

Если вы используйте какой либо фронтенд фреймворк, то обязательно найдете в коллекции компонент, позволяющий создавать модальные окна. К примеру в angular, вы найдете сервис mdDialog (компонент Angular Material) и соответствующие директивы для шаблона.

Скрипты bootstrap позволяют вам открывать и программировать модальные окна.

Для jQuery создано множество плагинов, которые могут выполнять роль модальных окон, к примеру, fancyBox и shadowbox. Первичная их задача была в демонстрации изображений (показ галереи или полной версии изображения по клику на превью), но позднее функционал был значительно расширен.

Скрипт модального окна в чистом javascript.

Хочу рассказать о скрипте tingle. Я нашел его, когда подбирал реализацию модального окна для своего Drupal плагина MAT.

У этого крошечного скрипта много положительных качеств, два из которых, мне были очень важны : он небольшой (CSS + JS  < 10k) и не имеет зависимостей.

Вот некоторые примеры работы скрипта:

Простое окно с выводом произвольного содержимого. Нет кнопок, только «крестик» для закрытия.

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

В этом примере, модальное окно не содержит базовой кнопки «закрыть» в виде крестика справа-сверху. Пользователь должен выбрать действие, нажав на одну из акшн-кнопок.


Если содержимое не влазит по вертикали — не беда, появляется линейка прокрутки.

Вариаций очень много, но меня интересовал вариант со вставкой модального окна не inline html, а когда данные подгружаются откуда то ещё. Скрипт tingle не имеет каких то других вариантов, кроме inline загрузки контента.

Но я решил задачу, используя iframe.

Понятно, что можно воспользоваться и ajax. Решение данного вопроса остается за рамками tingle, вы сами выбираете наиболее уместный в вашей ситуации способ.

Мало букафф? Читайте есчо !

Игра жизнь online (js)

Июль 13, 2021 г.

Культовая игра "жизнь", теперь и на js. Давным давно я делал реализацию игры на delphi (в 1999?). Хотя старая реализация до сих пор рабочая, но запустить ...

Читать

Обработка события click или touchstart

Октябрь 31, 2018 г.

Широкое применение мобильных устройств для доступа в интернет накладывает свои специфические требования на разработку веб-сайтов. Привычный обработчик onclick может срабатывать совместно с ontouchstart, а может не срабатывать вовсе на мобильном устройстве. ...

Читать

Подключаем fancybox в Drupal 6

Сентябрь 1, 2013 г.

Fancybox - известный плагин jQuery для создания эффекта "просмотра в окошке". Давайте подключим его в 6-ю версию Drupal. Ряд "деятелей" предлагают поставить для этой цели, кроме самой библиотеки, ещё два плагина - jquery_update и fancybox. Определенный ...

Читать

Функция подсчета не нулевых бит (JS)

Май 9, 2023 г.

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

Читать
 

Комментарии к «Создание модальных окон в javascript»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Один комментарий в “Создание модальных окон в javascript”

  1. Егор:

    Скрипт прекрасно работает на Android во всех мобильных браузерах