Table of contents

Dropdown

Easy creating dropdown elements with special role.

About

Quite often you have to create elements that dropdown at the user's request. For example, drop-down menus. In Metro 4 you can transform any element to dropdown. Element must have display: block css property. To create dropdown element you can add role data-role="dropdown" and define toggle for it with attribute data-toggle-element="...". At the same time, only one dropdown element can be opened.

In Metro 4 you can transform any element to dropdown.


                    <button class="button" id="dropdown_toggle_1">Drop block</button>
                    <div class="pos-relative">
                        <div class="bg-red fg-white"
                                data-role="dropdown"
                                data-toggle-element="#dropdown_toggle_1">
                            <p class="p-10 text-center">
                                In Metro 4 you can transform any element to dropdown.
                            </p>
                        </div>
                    </div>
                

Options

Each dropdown element has a number of option:

Option Data-* Default Desc
effect data-effect slide Show/Close effect. Values: slide, fade
toggleElement data-toggle-element null Selector who specified toggle element
duration data-duration 300 Effect duration in milliseconds
noClose data-no-close false If true, dropped element can't be close
onDrop data-on-drop Metro.noop Event fired when element dropped
onUp data-on-up Metro.noop Event fired when element close
onDropdownCreate data-on-dropdown-create Metro.noop Event fired when element created

Important! One dropdown element is open, other dropdown elements are closed!

Methods

Each dropdown component has next methods: open(), close(). You can use this methods to interact with component.


                    el = $('#el').data('dropdown');
                    el.open();
                    setTimeout(function(){
                        el.close();
                    }, 2000);