Вступление #

Для работы выпадающегося меню, триггеру необходимо добавить класс .js-dropdown-trigger и специальный дата-атрибут data-dropdown-menu, где в значениях указывается id выпадающегося меню.

Установка #

Пример разметки и инициализации выпадающегося меню.

    <button class="js-dropdown-trigger" type="button" data-dropdown-menu="my-dropdown">Вызвать выпадающее меню</button>
    <div class="dropdown-menu" id="my-dropdown">
        <nav>
            <a href="">Брутали́зм</a>
            <a href="">Деконструктиви́зм</a>
            <a href="">Архитектурный модернизм</a>
        </nav>
    </div>
    BasicDropdown.init('.my-dropdown-trigger');
    BasicDropdown.init(document.querySelector('.my-dropdown-trigger'));
    BasicDropdown.init(document.querySelectorAll('.my-dropdown-trigger'));

    // или

    BasicDropdown.init(); // по умолчанию инициaлизирует элементы с классом .js-dropdown-trigger

Конфигурация #

Настройки, которые указываются при помощи специальных data-атрибутов.

data-dropdown-options #

В значениях указываются параметры для гибкой настройки выпадающегося меню.

    <div class="js-dropdown" data-dropdown-options='{"event": "mouseover", "position": "top"}'>
        <button class="dropdown-trigger" type="button">Вызвать выпадающий список</button>
        <div class="dropdown-menu">
            <nav>
                <a href="">Брутали́зм</a>
                <a href="">Деконструктиви́зм</a>
                <a href="">Архитектурный модернизм</a>
            </nav>
        </div>
    </div>
Название Тип Описание
event string Указывает тип события, с помощью которого будет вызван .dropdown-menu.
position string Указывает позицию .dropdown-menu, принимает несколько значений: top, right, bottom, left.

Методы #

show() #

Показывает выпадающее меню.

    // принимает значение типа Object или String
    // в значениях указывается выпадающее меню
    BasicDropdown.hide('.my-dropdown');

hide() #

Скрывает выпадающее меню.

    // принимает значение типа Object или String
    // в значениях указывается выпадающее меню
    BasicDropdown.show('.my-dropdown');

Прослушивание событий #

Можно прослушать события элемента и получить необходимые параметры.

dropdown visibility #

Срабатывает при переключение видимости выпадающегося меню.

Параметры:

Название Тип Описание
event.detail.trigger object Триггер выпадающегося меню.
event.detail.menu object Выпадающее меню.
event.detail.show boolean Статус видимости меню(виден: true, скрыт: false).
     document.querySelector('.my-dropdown').addEventListener('dropdown visibility', function(event) {

        console.log(event.detail); // параметры

    }, false);