Вступление #
Для работы поп-ап можно использовать класс по умолчанию .js-trigger-popup и атрибут data-popup-id с указанием id поп-апа.
Basic popup.
Вызывается при помощи триггера .js-trigger-popup.
Установка #
Пример разметки и инициализации поп-апа.
<button
class="js-trigger-popup"
type="button"
data-popup-id="demo-popup-a"
>
Открыть поп-ап
</button>
<div
class="popup"
id="demo-popup-a"
>
<h1>Basic popup.</h1>
<p>Вызывается при помощи триггера <code>.js-trigger-popup</code>.</p>
</div>
BasicPopup.init({
trigger: '.my-trigger',
popup: '#my-popup'
});
// или
BasicPopup.init(); // по умолчанию инициaлизирует элементы с классом .js-trigger-popup и с дата-атрибутом data-popup-id.
Параметры:
| Название | Тип | Описание |
|---|---|---|
trigger |
object/string |
Триггер поп-апа, по умолчанию .js-trigger-popup. |
popup |
object/string |
Поп-ап триггера, в значениях указывается id поп-апа, по умолчанию значение берётся с data-popup-id. |
Также можно инициализировать только один поп-ап без триггера. Для этого в параметрах необходимо указать только сам элемент поп-апа:
<div
class="popup"
id="demo-popup-b"
>
<h1>Basic popup.</h1>
<p>Поп-ап без триггера</p>
</div>
BasicPopup.init('#demo-popup-b'); // принимает значение типа Object или String
Конфигурация #
Настройки, заданные с использованием data-атрибутов.
data-popup-id #
В значениях указывается id поп-апа. Привязывает триггер к указанному поп-апу.
<button
class="js-trigger-popup"
type="button"
data-popup-id="demo-popup-a"
>
Открыть поп-ап
</button>
<div
class="popup"
id="demo-popup-a"
>
<h1>Basic popup.</h1>
</div>
data-popup-close #
Если нужно добавить в поп-ап новый элемент, который будет отвечать за его закрытие, то это можно сделать, просто добавив дата-атрибут data-popup-close.
Методы #
show() #
Показывает поп-ап.
// принимает значение типа Object или String
BasicPopup.show('#my-popup');
hide() #
Скрывает поп-ап.
// принимает значение типа Object или String
BasicPopup.hide('#my-popup');
html() #
Добавляет динамический контент и показывает поп-ап.
BasicPopup.html({
'popup': '#my-popup', // поп-ап(принимает значение типа Object или String)
'content': '<p>Новый контент поп-апа.</p>' // новый контент
});
Экземпляр #
У каждого инициализированного поп-ап элемента есть свой экземпляр.
const myPopup = document.querySelector("#my-popup")
console.log(myPopup.BasicPopup) // пример экземпляра
В настоящее время экземпляр поддерживает все методы.
Прослушивание событий #
Можно прослушать события элемента и получить нужные параметры.
popup:change #
Срабатывает при переключении видимости поп-апа.
Параметры:
| Название | Тип | Описание |
|---|---|---|
event.detail.popup |
object |
Поп-ап. |
event.detail.trigger |
object |
Триггер поп-апа. |
event.detail.show |
boolean |
Статус видимости поп-апа(виден: true, скрыт: false). |
const myPopup = document.getElementById('my-popup');
myPopup.addEventListener('popup:change', function(event) {
console.log(event.detail); // параметры
}, false);