Создание модальных окон в 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, вы сами выбираете наиболее уместный в вашей ситуации способ.

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

Пара способов добраться до индекса родительского цикла ng_repeat в Angular

Ноябрь 18, 2016 г.

Если вы начали применять вложенные циклы ng_repeat, но не сильно вникали как это работает, то могли столкнуться с проблемой видимости итератора внешнего цикла во внутреннем. В контексте цикла Angular создает несколько переменных, одна из них - ...

Читать

Установка значения атрибута HTML DOM элемента средствами js

Декабрь 17, 2018 г.

При работе с HTML документом из JavaScript одной из типовых операций является установка значения того или иного атрибута выбранного контейнера (тега). Vanila JS В чистом js (vanila) значение атрибута можно установить следующим образом: [crayon-69b039136fdbd808280215/] ...

Читать

Показ навигации и пагинатора swiper js за пределами контейнера

Апрель 11, 2018 г.

swiper js - jQuery плагин для создания адаптивной карусели  картинок. Посмотрим как сверстать шаблон так, чтобы элементы управления слайдером можно было размещать за пределами контейнера слайдера. SWIPER на GITHUB. Это стандартный шаблон, который ...

Читать

Создаём ripple эффект

Апрель 29, 2017 г.

Ripple эффект - это анимация, визуально напоминающая расходящийся круг. Иногда накладывают несколько эффектов сразу и это выглядит как расходящиеся круги ...

Читать
 

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

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



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

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

  1. Егор:

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