Компонент Выпадающий список
Выпадающее меню. Навигация и Dropdown (дропдаун). Размещение сетки Grid и любого контента в выпадающем контейнере. Различные позиции при отображении раскрывающегося списка. Анимация при появлении выпадающего элемента.
Dropdown: Создание
Dropdown : Создание выпадающего содержимого
Добавьте к элементу блока, который должен выпадать, атрибут uk-dropdown
,
расположив выпадающий dropdown ниже вызываемого.
<button type="button">кнопка</button>
<div uk-dropdown></div>
По сути своей, выпадающий список довольно похож на Выпадение : Drop. Любой контент, например ссылка, может переключать выпадающий элемент.
Вы можете раскрыть выпадающий контейнер наведением курсора мыши или нажатием на переключатель.
Только для принудительного режима click
достаточно просто добавить опцию mode: click
к атрибуту.
Если вы хотите объеденить в группу переключатель и выпадающий dropdown,
добавьте класс .uk-inline
из компонента Utility в элемент контейнера вокруг обоих.
<div class="uk-inline">
<button type="button"></button>
<div uk-dropdown="mode: click"></div>
</div>
Навигационное меню
Создаем выпадающее меню навигации
Выпадающий элемент Dropdown может содержать в себе навигацию
из компонента Навигация списком (Nav).
Добавьте к элементу <ul>
класс .uk-nav
и модификатор .uk-dropdown-nav
.
Чтобы определить заголовок в dropdown-меню, добавьте к элементу класс .uk-nav-header
, а для
подзаголовка используйте класс .uk-nav-subtitle
.
Разметка HTML:
<button type="button"></button>
<div uk-dropdown>
<ul class="uk-nav uk-dropdown-nav">
...
</ul>
</div>
-
Заголовок
Подзаголовок
- Активный пункт
- Пункт меню
- Заголовок
- Пункт меню
- Ещё один пункт
- Нижний пункт меню
<button class="uk-button uk-button-primary" type="button">Навигация при клике</button>
<div uk-dropdown="mode: click">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">
Заголовок
<div class="uk-nav-subtitle">Подзаголовок</div>
</li>
<li class="uk-nav-divider"></li>
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Ещё один пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a class="uk-nav-subtitle" href="#">Нижний пункт меню</a></li>
</ul>
</div>
Ширина и Grid
Сетка Grid в выпадающем контейнере Dropdown
Вы можете поместить сетку из компонента Грид в раскрывающийся контейнер дропдауна,
который в свою очередь может содержать навигацию или любой другой контент.
Просто оберните содержимое элементом <div>
и добавьте атрибут uk-grid
.
Если сетка должна складываться автоматически, всякий раз когда раскрывающееся содержимое больше не помещается в контейнер дропдауна,
добавьте класс .uk-drop-grid
.
<div class="uk-width-large" uk-dropdown>
<div class="uk-drop-grid uk-child-width-1-2@m" uk-grid>...</div>
</div>
Используйте один из классов UIkit компонента Ширина, чтобы настроить ширину выпадающего списка с навигационным меню или обычным контентом.
<div class="uk-panel-scrollable uk-width-xlarge@l">
<button class="uk-button uk-button-default" type="button">Нажми</button>
<div class="uk-width-large" uk-dropdown="mode: click">
<div class="uk-drop-grid uk-child-width-1-2@m" uk-grid>
<div>
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Самостоятельный пункт</a></li>
</ul>
</div>
<div>
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Ещё пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Отдельный пункт</a></li>
</ul>
</div>
</div>
</div>
</div>
Модификатор «Large»
Класс-модификатор .uk-dropdown-large
позволяет увеличить внутренний отступ.
Добавьте класс .uk-dropdown-large
для раскрывающегося контента с большим отступом.
<div class="uk-dropdown-large" uk-dropdown></div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Увеличенный отступ</button>
<div class="uk-dropdown-large" uk-dropdown>
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Название пункта</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Название пункта</a></li>
<li><a href="#">Ещё пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Название пункта</a></li>
</ul>
</div>
</div>
Позиция
Позиция выпадающего элемента
По умолчанию раскрывающийся список «Дропдаун» располагается под переключателем.
Чтобы изменить его положение, установите параметр pos
атрибута uk-dropdown
.
Первая часть значения относится к стороне на которой расположен раскрывающийся список,
а вторая часть определяет его выравнивание по отношению к переключателю.
<div uk-dropdown="pos: top-left"></div>
Добавьте один из следующих параметров в атрибут uk-dropdown
, чтобы настроить выравнивание списка «Дропдаун»:
Позиция | Описание |
---|---|
top-left |
Устанавливает выпадающий список в левом верхнем углу. |
top-center |
Выравнивает выпадающий список сверху по центру. |
top-right |
Устанавливает выпадающий список сверху справа. |
bottom-left |
Выравнивает выпадающий список по нижнему левому краю. |
bottom-center |
Выравнивает раскрывающийся список внизу по центру. |
bottom-right |
Выравнивает выпадающий список по нижнему правому краю. |
left-top |
Устанавливает раскрывающийся список слева вверху. |
left-center |
Выравнивает выпадающий список меню слева по центру. |
left-bottom |
Устанавливает выпадающий список слева по нижнему краю. |
right-top |
Выравнивает раскрывающийся список справа вверху. |
right-center |
Выравнивает раскрывающийся список справа по центру. |
right-bottom |
Выравнивает раскрывающийся список справа по нижнему краю. |
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Top Right</button>
<div uk-dropdown="pos: top-right">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Ещё пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Отдельный пункт</a></li>
</ul>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Bottom Center</button>
<div uk-dropdown="pos: bottom-center">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Ещё пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Отдельный пункт</a></li>
</ul>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Right Center</button>
<div uk-dropdown="pos: right-center">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Ещё пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Отдельный пункт</a></li>
</ul>
</div>
</div>
Граница (Boundary)
По умолчанию раскрывающийся список Dropdown переворачивается автоматически
когда он превышает край области просмотра или выходит за пределы любого другого родительского предка прокрутки.
Dropdown перевернет свое положение на другую сторону изменив своё направление, чтобы соответствовать размеру окна просмотра.
Если вы хотите перевернуть его в соответствии с границей контейнера, просто добавьте в атрибут uk-dropdown
параметр boundary: SELECTOR
используя селектор контейнера. Таким образом, вы можете определить любой родительский
элемент в качестве границы для выпадающего содержимого Dropdown.
<div class="my-class">
<button type="button">Вызываемая кнопка</button>
<div uk-dropdown="boundary: !.my-class">
…
</div>
</div>
- Активный пункт
- Пункт меню
- Заголовок
- Пункт меню
- Пункт меню
- Пункт меню
- Активное
- Элемент меню
- Заголовок
- Элемент меню
- Элемент меню
- Элемент меню
<div class="boundary uk-panel uk-placeholder uk-height-small">
<button class="uk-button uk-button-default uk-float-left" type="button">Bottom Right</button>
<div uk-dropdown="pos: bottom-right; boundary: !.boundary">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Пункт меню</a></li>
</ul>
</div>
<button class="uk-button uk-button-default uk-float-right" type="button">Bottom Left</button>
<div uk-dropdown="pos: bottom-left; boundary: !.boundary">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активное</a></li>
<li><a href="#">Элемент меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Элемент меню</a></li>
<li><a href="#">Элемент меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Элемент меню</a></li>
</ul>
</div>
</div>
Shift и Flip
По умолчанию shift
и flip
имеют значение true
.
Чтобы отключить автоматическое смещение (shift) и переворачивание (flip),
добавьте параметр shift: false
или flip: false
к атрибуту uk-dropdown
.
<div uk-dropdown="shift: false; flip: false"></div>
- Активный пункт
- Пункт меню
- Заголовок
- Пункт меню
- Пункт меню
- Нижний пункт
Чувствую близость всемогущего темного леса.
- Заголовок
- Активный пункт
- Нижний пункт
Стоит над непроницаемой чащей темного леса.
- Заголовок
- Активный пункт
- Нижний пункт
<div class="boundary uk-panel uk-placeholder uk-height-medium">
<button class="uk-button uk-button-default uk-float-left" type="button">Bottom Right</button>
<div uk-dropdown="pos: bottom-right; boundary: !.boundary; shift: false; flip: false">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Нижний пункт</a></li>
</ul>
</div>
<button class="uk-button uk-button-default uk-float-right" type="button">Bottom Left</button>
<div uk-dropdown="pos: bottom-left; boundary: !.boundary; shift: false; flip: false">
Душа моя озарена радостью, как эти чудесные весенние утра, которыми я наслаждаюсь от всего сердца.
Я блаженствую в здешнем краю.
</div>
</div>
<div class="boundary uk-panel uk-placeholder uk-height-small uk-background-muted">
<button class="uk-button uk-button-secondary uk-float-left" type="button">BR + flip: false</button>
<div uk-dropdown="pos: bottom-right; boundary: !.boundary; flip: false">
Непостижимые разновидности червяков и мошек.<br>
Чувствую близость всемогущего темного леса.
</div>
<button class="uk-button uk-button-secondary uk-float-right" type="button">BL + shift: false</button>
<div uk-dropdown="pos: bottom-left; boundary: !.boundary; shift: false">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">Заголовок</li>
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Нижний пункт</a></li>
</ul>
</div>
</div>
<div class="boundary uk-panel uk-placeholder uk-height-small uk-background-muted">
<button class="uk-button uk-button-secondary uk-float-left" type="button">BR + flip: true</button>
<div uk-dropdown="pos: bottom-right; boundary: !.boundary; flip: true">
Когда от милой моей долины поднимается солнце. <br>
Стоит над непроницаемой чащей темного леса.
</div>
<button class="uk-button uk-button-secondary uk-float-right" type="button">BL + shift: true</button>
<div uk-dropdown="pos: bottom-left; boundary: !.boundary; shift: true">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">Заголовок</li>
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Нижний пункт</a></li>
</ul>
</div>
</div>
Auto Update
По умолчанию выпадение перемещается при прокрутке.
Чтобы отключить динамическое позиционирование, добавьте опцию auto-update: false
к атрибуту uk-dropdown
.
Выпадающий список «Дропдаун» будет позиционироваться только один раз при открытии.
<div uk-dropdown="auto-update: false"></div>
Target
По умолчанию раскрывающийся список Dropdown выровнен по переключателю.
Чтобы поместить раскрывающийся список в другой элемент, просто добавьте опцию target: SELECTOR
к атрибуту uk-dropdown
.
Чтобы изменить только сторону, на которой расположен раскрывающийся список, или изменить выравнивание по другому элементу,
используйте target-x: SELECTOR
или target-y: SELECTOR
.
<div class="my-class">
<button type="button">Переключатель</button>
<div uk-dropdown="target: !.my-class"></div>
</div>
- Активный
- Пункт меню
- Заголовок
- Пункт меню
- Пункт меню
- Нижний пункт
- Активный
- Пункт
- Заголовок
- Пункт меню
- Пункт меню
- Нижний пункт
<div class="target uk-panel uk-placeholder uk-height-medium">
<button class="uk-button uk-button-default uk-float-left" type="button">Bottom Left</button>
<div uk-dropdown="pos: bottom-left; target: !.target">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Нижний пункт</a></li>
</ul>
</div>
<button class="uk-button uk-button-default uk-float-right" type="button">Bottom Right</button>
<div uk-dropdown="pos: bottom-right; target: !.target">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный</a></li>
<li><a href="#">Пункт</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Пункт меню</a></li>
<li><a href="#">Пункт меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Нижний пункт</a></li>
</ul>
</div>
</div>
Inset
По умолчанию раскрывающееся содержимое расположено за пределами переключателя.
Чтобы при открытии изменить положение внутрь (к себе), добавьте опцию inset: true
к атрибуту uk-dropdown
.
Этот параметр следует использовать только в том случае, если параметр target
также установлен таким образом
что раскрывающийся элемент не перекрывает кнопку-переключатель.
<div uk-dropdown="target: .my-class; inset: true"></div>
- Заголовок
- Активный пункт
- Название пункта
- Бумбарашка
- Заголовок
- Активный пункт
- Название пункта
- Бумбарашка
<div class="target uk-panel uk-placeholder uk-height-large">
<button class="uk-button uk-button-default uk-float-left" type="button">Bottom Left</button>
<div uk-dropdown="pos: bottom-left; target: !.target; inset: true">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">Заголовок</li>
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Название пункта</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Бумбарашка</a></li>
</ul>
</div>
<button class="uk-button uk-button-default uk-float-right" type="button">Bottom Right</button>
<div uk-dropdown="pos: bottom-right; target: !.target; inset: true">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">Заголовок</li>
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Название пункта</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Бумбарашка</a></li>
</ul>
</div>
</div>
Stretch
Чтобы растянуть раскрывающийся список, чтобы заполнить размер его ближайшего предка прокрутки,
добавьте параметр stretch: true
к атрибуту uk-dropdown
.
Чтобы растянуть только до одной оси, используйте stretch: x
или stretch: y
.
Если параметр boundary
установлен, раскрывающийся список растягивается до определенной границы.
<div uk-dropdown="stretch: true"></div>
<div class="uk-navbar-container" uk-navbar>
<div class="uk-navbar-left">
<ul class="uk-navbar-nav">
<li>
<a href>Наведи</a>
<div class="uk-navbar-dropdown" uk-dropdown="boundary: !.uk-navbar; stretch: x; flip: false">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Название</a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Название</a></li>
<li><a href="#">Название</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Пуговка</a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
Анимация
Анимация и её продолжительность
Примените одну или несколько анимаций к раскрывающемуся списку Dropdown,
добавив опцию animation: uk-animation-*
с каким-либо классом из компонента Анимация.
Вы также можете определить продолжительность анимации.
Просто добавьте опцию продолжительности duration
с необходимым значением в миллисекундах.
<div uk-dropdown="animation: uk-animation-slide-top-small; duration: 950"></div>
- Активный элемент
- Элемент списка
- Заголовок списка
- Элемент списка
- Ещё один пункт
- Отдельный элемент
<button class="uk-button uk-button-default" type="button">Наведи-ка</button>
<div uk-dropdown="animation: uk-animation-slide-top-small; duration: 950">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный элемент</a></li>
<li><a href="#">Элемент списка</a></li>
<li class="uk-nav-header">Заголовок списка</li>
<li><a href="#">Элемент списка</a></li>
<li><a href="#">Ещё один пункт</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Отдельный элемент</a></li>
</ul>
</div>
Анимации Slide и Reveal
Компонент Dropdown имеет два дополнительных типа анимации,
которые не включает в себя компонент Animation.
Анимации slide-*
перемещают раскрывающийся список и его содержимое в выбранном направлении,
в то время как при анимации reveal-*
открываясь с выбранного направления содержимое раскрывающегося списка остается статичным.
Анимация | Описание |
---|---|
slide-top |
Сдвигает раксрывающееся содержимое сверху. |
slide-bottom |
Сдвигает раксрывающееся содержимое снизу. |
slide-left |
Сдвигает раксрывающееся содержимое слева. |
slide-right |
Сдвигает раксрывающееся содержимое справа. |
reveal-top |
Отображает контент выезжая сверху. |
reveal-bottom |
Отображает контент выезжая снизу. |
reveal-left |
Отображает контент выезжая слева. |
reveal-right |
Отображает контент выезжая справа. |
- Активненький
- Название
- Заголовок
- Название
- Название
- Название
- Активненький
- Название
- Заголовок
- Название
- Название
- Название
- Активненький
- Название
- Заголовок
- Название
- Название
- Название
- Активненький
- Название
- Заголовок
- Название
- Название
- Название
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Slide Top</button>
<div uk-dropdown="animation: slide-top; animate-out: true; duration: 700">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активненький</a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Название </a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Название </a></li>
</ul>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Reveal Top</button>
<div uk-dropdown="animation: reveal-top; animate-out: true; duration: 700">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активненький</a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Название </a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Название </a></li>
</ul>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Slide Left</button>
<div uk-dropdown="animation: slide-left; animate-out: true; duration: 700">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активненький</a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Название </a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Название </a></li>
</ul>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Reveal Left</button>
<div uk-dropdown="animation: reveal-left; animate-out: true; duration: 700">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активненький</a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#">Название </a></li>
<li><a href="#">Название </a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Название </a></li>
</ul>
</div>
</div>
</div>
Смещение (Offset)
Чтобы определить пользовательское смещение между раскрывающимся контейнером и переключателем,
добавьте опцию offset
и значение для смещения, измеряемое в пикселях.
<div uk-dropdown="offset: 80"></div>
- Активный пункт
- Элемент меню
- Красота-то какая!
- Пункт списка
- Ещё один элемент
- Отдельный элемент
<button class="uk-button uk-button-default" type="button">Наведи-ка</button>
<div uk-dropdown="offset: 80">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li><a href="#">Элемент меню</a></li>
<li class="uk-nav-header">Красота-то какая!</li>
<li><a href="#">Пункт списка</a></li>
<li><a href="#">Ещё один элемент</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#">Отдельный элемент</a></li>
</ul>
</div>
Параметры для атрибута
При использовании компонента Dropdown к атрибуту можно применить любой из этих параметров. Разделяйте несколько вариантов точкой с запятой. Для получения дополнительной информации ознакомьтесь с главой Конфигурация компонента.
Опции компонента
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
toggle |
CSS selector | - * |
CSS селектор для элемента, который будет использоваться в качестве переключателя. По умолчанию используется предыдущий элемент. |
pos |
String | bottom-left |
Положение раскрывающегося списка. |
stretch |
Boolean, String | false |
Растянуть раскрывающийся список по обеим (true ) или заданным осям (x , y ). |
mode |
String | click , hover |
Разделенный запятыми список режимов поведения триггера: hover , click |
delay-show |
Number | 0 |
Время задержки в миллисекундах до отображения раскрывающегося списка в режиме наведения. |
delay-hide |
Number | 800 |
Время задержки в миллисекундах до скрытия выпадающего списка в режиме наведения. |
auto-update |
Boolean | true |
Отключите динамическое позиционирование при прокрутке, установив для этого параметра значение false . |
boundary |
CSS selector | false |
Область, которую раскрывающийся список не может превышать, заставляя его переворачиваться и сдвигаться. По умолчанию ближайший предок прокрутки. |
boundary-x |
CSS selector | false |
Область по оси x, которую капля не может превышать, заставляя её переворачиваться и смещаться. |
boundary-y |
CSS selector | false |
Область по оси y, которую капля не может превышать, заставляя её переворачиваться и смещаться. |
target |
Boolean, CSS selector | false |
Элемент, к которому позиционируется dropdown ( true for window). |
target-x |
Boolean, CSS selector | false |
Ось X элемента, на которую позиционируется dropdown ( true for window). |
target-y |
Boolean, CSS selector | false |
Ось Y элемента, на которую позиционируется dropdown ( true for window). |
inset |
Boolean | false |
Позиция внутри target. |
flip |
Boolean | true |
Прижать по главной оси. Переверните dropdown вдоль главной оси, если он выходит за границу. |
shift |
Boolean | true |
Сдвиньте dropdown по поперечной оси, если он выходит за границу. |
offset |
Number | 0 |
Смещение контейнера раскрывающегося списка. |
animation |
String | uk-animation-fade |
Разделённые пробелами названия анимаций для применения. |
animate-out |
Boolean | false |
Использовать анимацию при закрытии dropdown. |
bg-scroll |
Boolean | true |
Разрешить фоновую прокрутку при открытом dropdown. |
close-on-scroll |
Boolean | false |
Закрыть dropdown при прокрутке родительского scroll-контейнера. |
duration |
Number | 200 |
Продолжительность анимации в миллисекундах. |
container |
Boolean | false |
Определите целевой контейнер с помощью селектора, чтобы указать, где раскрывающийся список должен быть добавлен в DOM. |
pos
является Primary опцией.
Если pos
это единственный параметр в значении атрибута, то её ключ можно не использовать.
<div uk-dropdown="top-center"></div>
JavaScript
Узнайте больше о использовании JavaScript в компонентах фреймворка UIkit 3.
Инициализация
UIkit.dropdown(element, options);
События
Следующие события будут инициированы для элементов компонента «Dropdown»:
Имя события | Описание |
---|---|
toggle |
Срабатывает до переключения элемента. |
beforeshow |
Срабатывает до отображения элемента. Можно предотвратить отображение, вызвав событие preventDefault() . |
show |
Срабатывает после отображения элемента. |
shown |
Запускается после завершения анимации отображённого элемента. |
beforehide |
Срабатывает до того, как элемент будет скрыт. Можно предотвратить отображение, вызвав событие preventDefault() . |
hide |
Запускается перед тем, как элемент скрыт. |
hidden |
Запускается после того, как элемент спрятан. |
stack |
Срабатывает, когда применяется класс drop-stack . |
Методы
Для компонента «Dropdown» доступны следующие методы:
Show
UIkit.dropdown(element).show();
Показывает Dropdown.
Hide
UIkit.dropdown(element).hide(delay);
Скрывает Dropdown.
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
delay |
Boolean | true | Задержка скрытия раскрывающегося списка. |
Доступность
Компонент раскрывающегося списка Dropdown соответствует Menu Button Pattern WAI-ARIA и автоматически устанавливает соответствующие роли, состояния и свойства WAI-ARIA.
Переключатель имеет роль button
, состояние aria-expanded
и свойство aria-haspopup
.
Взаимодействие с клавиатурой
Доступ к компоненту Dropdown можно получить с клавиатуры, используя следующие кнопки:
- Клавиши enter или space открывают и закрывают раскрывающийся список dropdown.
- Клавиша esc закрывает раскрывающийся список dropdown, даже если фокус переместился на другой элемент.