Компонент «Модальное окно» (popup)

Компонент «Модальное окно» (popup)

Этот функционал позволяет использовать модульные (вытекающие) окна. Работа модуля состоит в следующем: пользователь нажимает на указанный элемент (по умолчанию это атрибут с указанным именем попапа data-fls-popup-link=’popup`s name’ ). При этом в тег body добавляется атрибут data-fls-popup-open . Также блокируется прокрутка страницы (можно отключить), фокусировка элементов «перелетает» на popup, с запоминанием предыдущего сфокусированного элемента на странице. Закрытие popup происходит при нажатии кнопки закрытия (по умолчанию элемент с атрибутом data-fls-popup-close ), по щелчку на пустом месте (не на popup), по нажатию кнопки ESC .

HTML/SCSS/JS файлы компонента находятся в папке src/components/layout/popup/

Использование компонента

С помощью include подключаем HTML-файл компонента к нашей HTML-странице (можно воспользоваться снопом pop):

<include src="@components/layout/popup/popup.html"></include>

В файле src/components/layout/popup/popup.html уже есть базовый HTML-код одного попапа, важно, что объект имеет атрибут data-fls-popup со значением popup. Это значение и есть именем попапа.

Вы можете создавать еще модальные окна, придающие им уникальные имена.

Для того чтобы выложить открытие того или иного окна добавьте объекту (ссылка, кнопка и т.д.) атрибут data-fls-popup-link и в зачении укажите имя попа, который нужно открыть (можно воспользоваться снипетом pl ).

Например по клику на эту ссылку откроется окно с именем popup :

<a href="#" data-fls-popup-link="popup">Всплывающее окно</a>

Дополнительные возможности

Компонент «Модальное окно» умеет открывать popup по хэшу. Например, по этому адресу откроется окно с именем popup :

http://localhost:1111/#всплывающее окно

Также есть возможность открывать YouTube-видео в модальном окне с автоматическим запуском воспроизведения. Для этого добавьте атрибут data-fls-popup-youtube, к объекту открывающему попап, со значением ID YouTube-видео.

Например, если YouTube-видео имеет такую ​​ссылку https://www.youtube.com/watch?v=fWeFxo1eWi8 то его ID это fWeFxo1eWi8. Именно этот код и указывается в атрибуте:

<a href="#" data-fls-popup-link="popup" data-fls-popup-youtube="TzqNA7FoEjY">Всплывающее окно</a>

Если ваше модальное окно открывается, например, по хешу или после отправки формы, то атрибут data-fls-popup-youtube с ID видео добавьте к главному тегу попапа в файле src/components/layout/popup/popup.html:

<div data-fls-popup="popup" data-fls-popup-youtube="TzqNA7FoEjY" aria-hidden="true" class="popup">.....</div>

В обоих случаях видео будет интегрировано в объект с атрибутом data-fls-popup-content с заменой всего содержимого, если возникает необходимость вывести видео в каком-нибудь другом месте модального окна, создайте объект и добавьте ему атрибут data-fls-popup-youtube-place

Методы и события

Методы

Для того чтобы вызвать тот или иной метод компонента, обращайтесь к нему через глобальную переменную window.flsPopup.

Например, следующее обращение откроет попап с именем popup:

window.flsPopup.open('всплывающее окно')

События

В классе попапов существует ряд событий:

  • beforePopupOpen – сработает перед открытием попапа
  • afterPopupOpen – сработает после открытия попапа
  • beforePopupClose – сработает перед открытием попапа
  • afterPopupClose – сработает после открытия попапа

Чтобы работать с событием вешаем прослушивание на document

document.addEventListener("afterPopupOpen", function (e) {// Popupconst currentPopup = e.detail.popup;})

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Что будем искать? Например,Человек

Мы в социальных сетях