NavigationBarПанель навигации
Панель навигации используется на мобильных устройствах для удобного переключения между нескольсима основными страницами.
Использование
При необходимости импортируйте компоненты:
import 'mdui/components/navigation-bar.js';
import 'mdui/components/navigation-bar-item.js';
При необходимости импортируйте типы TypeScript:
import type { NavigationBar } from 'mdui/components/navigation-bar.js';
import type { NavigationBarItem } from 'mdui/components/navigation-bar-item.js';
Пример использования: (Пример с style="position: relative" добавлен только для демонстрации, при реальном использовании удалите этот стиль.)
<mdui-navigation-bar value="item-1" style="position: relative">
<mdui-navigation-bar-item icon="place" value="item-1">Item 1</mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="commute" value="item-2">Item 2</mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="people" value="item-3">Item 3</mdui-navigation-bar-item>
</mdui-navigation-bar>Примечания:
Этот компонент по умолчанию использует позиционирование position: fixed и автоматически добавляет стиль padding-bottom к body, чтобы содержимое страницы не перекрывалось компонентом. Однако в следующих двух случаях по умолчанию используется позиционирование position: absolute:
- Когда указан атрибут
scroll-target. В этом случае стильpadding-bottomдобавляется к элементуscroll-target. - Когда компонент находится внутри
<mdui-layout></mdui-layout>. В этом случае стильpadding-bottomне добавляется.
Примеры
Отображение текстовых меток
Текстовые метки на панели навигации по умолчанию отображаются всегда, если количество элементов навигации не превышает 3; если элементов больше 3, текст отображается только для выбранного элемента.
Вы можете настроить отображение текстовых меток с помощью атрибута label-visibility у компонента <mdui-navigation-bar>. Возможные значения:
selected: текст отображается только для выбранного элементаlabeled: текст отображается всегдаunlabeled: текст не отображается никогда
В указанном контейнере
По умолчанию панель навигации отображается внизу страницы относительно текущего окна.
Если вы хотите разместить панель навигации внутри указанного контейнера, укажите атрибут scroll-target у компонента <mdui-navigation-bar>. Значением атрибута должен быть CSS-селектор или DOM-элемент контейнера с прокручиваемым содержимым. В этом случае панель навигации будет отображаться относительно родительского элемента (вам нужно самостоятельно добавить родительскому элементу стили position: relative; overflow: hidden).
Скрытие при прокрутке
Установите атрибут scroll-behavior у компонента <mdui-navigation-bar> в значение hide, чтобы панель навигации скрывалась при прокрутке страницы вниз и показывалась при прокрутке вверх.
Используйте атрибут scroll-threshold, чтобы задать количество пикселей прокрутки, после которого начнется скрытие панели.
Иконка
У компонента <mdui-navigation-bar-item> атрибут icon задает иконку для неактивного состояния, а атрибут active-icon — для активного состояния. Также можно использовать слоты icon и active-icon для указания элементов иконок.
Ссылка
Установите атрибут href у компонента <mdui-navigation-bar-item>, чтобы превратить элемент навигации в ссылку. При этом также можно использовать связанные с ссылками атрибуты: download, target, rel.
Бейдж
В компоненте <mdui-navigation-bar-item> можно добавить бейдж через слот badge.
mdui-navigation-bar-item API
Свойства
| Атрибут | Свойство | Reflect | Тип | По умолчанию |
|---|---|---|---|---|
icon | icon | string | - | |
Имя иконки Material Icons в неактивном состоянии. Можно задать через | ||||
active-icon | activeIcon | string | - | |
Имя иконки Material Icons в активном состоянии. Можно задать через | ||||
value | value | string | - | |
Значение элемента панели навигации. | ||||
href | href | string | - | |
Целевой URL ссылки. Если задано это свойство, компонент будет отображаться как элемент | ||||
download | download | string | - | |
Имя файла для скачивания при переходе по ссылке. Примечание: Это свойство действует только при заданном свойстве | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Определяет, где будет открыта ссылка. Возможные значения:
Примечание: Это свойство действует только при заданном свойстве | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Определяет тип связи между текущим документом и связанным документом. Возможные значения:
Примечание: Доступно только при заданном свойстве | ||||
autofocus | autofocus | boolean | false | |
Определяет, будет ли элемент автоматически получать фокус после загрузки страницы. | ||||
tabindex | tabIndex | number | - | |
Порядок перехода к элементу при нажатии клавиши Tab. | ||||
Методы
| Название | Параметры | Возвращаемое значение |
|---|---|---|
click | void | |
Имитирует щелчок мыши по элементу. | ||
focus |
| void |
Устанавливает фокус на текущий элемент. В качестве аргумента можно передать объект со свойством:
| ||
blur | void | |
Убирает фокус с текущего элемента. | ||
Slots
| Название |
|---|
| (по умолчанию) |
Текст элемента панели навигации. |
icon |
Иконка. |
active-icon |
Элемент иконки в активном состоянии. |
badge |
Бейдж. |
Пользовательские CSS-свойства
| Название |
|---|
--shape-corner-indicator |
Размер скругления углов индикатора. Можно указать конкретное значение в пикселях, но рекомендуется использовать дизайн-токены. |
mdui-navigation-bar API
Свойства
| Атрибут | Свойство | Reflect | Тип | По умолчанию |
|---|---|---|---|---|
hide | hide | boolean | false | |
Определяет, скрыта ли панель. | ||||
label-visibility | labelVisibility | 'auto' | 'selected' | 'labeled' | 'unlabeled' | 'auto' | |
Видимость текста. Возможные значения:
| ||||
value | value | string | - | |
Значение текущего выбранного | ||||
scroll-behavior | scrollBehavior | 'hide' | 'shrink' | 'elevate' | - | |
Поведение при прокрутке. Возможные значения:
| ||||
scroll-target | scrollTarget | string | HTMLElement | JQ<HTMLElement> | - | |
Элемент, прокрутку которого нужно отслеживать. В качестве значения можно указать CSS-селектор, DOM-элемент или JQ-объект. По умолчанию отслеживается событие | ||||
scroll-threshold | scrollThreshold | number | - | |
Пороговое значение прокрутки в пикселях, при котором срабатывает поведение прокрутки. | ||||
order | order | number | - | |
Порядок этого компонента в | ||||
События
| Название |
|---|
change |
Срабатывает при изменении значения. |
show |
Срабатывает в начале появления. Можно отменить появление, вызвав |
shown |
Срабатывает после завершения анимации появления. |
hide |
Срабатывает в начале скрытия. Можно отменить скрытие, вызвав |
Срабатывает после завершения анимации скрытия. |
Slots
| Название |
|---|
| (по умолчанию) |
Компоненты |
Пользовательские CSS-свойства
| Название |
|---|
--shape-corner |
Размер скругления углов компонента. Можно указать конкретное значение в пикселях, но рекомендуется использовать дизайн-токены. |
--z-index |
Значение CSS |