Вступление #

Для работы поп-ап можно использовать класс по умолчанию .js-trigger-popup и атрибут 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>
        <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);