NavigationBarBarra de navegación
El componente Navigation Bar permite alternar entre varias páginas principales en dispositivos móviles.
Uso
Importa los componentes cuando los necesites:
import 'mdui/components/navigation-bar.js';
import 'mdui/components/navigation-bar-item.js';
Importa los tipos TypeScript cuando los necesites:
import type { NavigationBar } from 'mdui/components/navigation-bar.js';
import type { NavigationBarItem } from 'mdui/components/navigation-bar-item.js';
Uso: (Nota: el style="position: relative" en el ejemplo es solo para demostración; elimina este estilo en uso real.)
<mdui-navigation-bar value="item-1" style="position: relative">
<mdui-navigation-bar-item icon="place" value="item-1">Elemento 1</mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="commute" value="item-2">Elemento 2</mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="people" value="item-3">Elemento 3</mdui-navigation-bar-item>
</mdui-navigation-bar>Notas importantes:
Este componente usa position: fixed por defecto y añade automáticamente padding-bottom al body para evitar que el contenido de la página quede oculto por el componente. Sin embargo, en los dos casos siguientes, se usará position: absolute por defecto:
- Cuando se indica el atributo
scroll-target. En este caso, se añadepadding-bottomal elementoscroll-target. - Cuando el componente está dentro de
<mdui-layout></mdui-layout>. En este caso, no se añadepadding-bottom.
Ejemplos
Visibilidad de la etiqueta de texto
La etiqueta de texto en la barra de navegación se muestra siempre cuando hay 3 o menos elementos de navegación; cuando hay más de 3 elementos, solo se muestra el texto del elemento seleccionado.
Puedes ajustar la visibilidad de la etiqueta de texto estableciendo el atributo label-visibility en el componente <mdui-navigation-bar>. Los valores posibles son:
selected: Solo muestra el texto del elemento seleccionadolabeled: Muestra siempre el textounlabeled: Nunca muestra el texto
Dentro de un contenedor especificado
Por defecto, la barra de navegación se muestra en la parte inferior de la página, tomando la ventana como referencia.
Si quieres colocar la barra de navegación dentro de un contenedor específico, define el atributo scroll-target en el componente <mdui-navigation-bar>. El valor debe ser el selector CSS o elemento DOM del contenedor con contenido desplazable. En este caso, la barra de navegación se posicionará tomando como referencia el elemento padre (debes añadir manualmente los estilos position: relative; overflow: hidden al elemento padre).
Ocultar al desplazar
Con el atributo scroll-behavior="hide" en <mdui-navigation-bar>, la barra de navegación se oculta al desplazarte hacia abajo y vuelve a mostrarse al desplazarte hacia arriba.
El atributo scroll-threshold define cuántos píxeles desplazar antes de comenzar a ocultar la barra de navegación.
Icono
En el componente <mdui-navigation-bar-item>, el atributo icon se usa para establecer el icono del elemento de navegación en estado inactivo, y el atributo active-icon para establecer el icono en estado activo. También puedes usar los slots icon y active-icon para establecer los elementos del icono en estado inactivo y activo.
Enlace
Con el atributo href en el componente <mdui-navigation-bar-item>, el elemento de navegación actúa como enlace. También puedes usar download, target y rel.
Badge
En el componente <mdui-navigation-bar-item>, puedes añadir un Badge mediante el slot badge.
mdui-navigation-bar-item API
Propiedades
| Atributo | Propiedad | Reflect | Tipo | Predeterminado |
|---|---|---|---|---|
icon | icon | string | - | |
Nombre del icono de Material Icons para el estado inactivo. También se puede establecer mediante | ||||
active-icon | activeIcon | string | - | |
Nombre del icono de Material Icons para el estado activo. También se puede establecer mediante | ||||
value | value | string | - | |
Valor del elemento de navegación. | ||||
href | href | string | - | |
URL de destino del enlace. Si se define esta propiedad, el componente se representará como un elemento | ||||
download | download | string | - | |
Nombre del archivo para el enlace de descarga. Nota: Esta propiedad solo tiene efecto si se ha definido la propiedad | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Especifica dónde abrir el enlace. Los valores posibles son:
Nota: Esta propiedad solo tiene efecto si se ha definido la propiedad | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Relación entre el documento actual y el documento enlazado. Los valores posibles son:
Nota: Disponible solo cuando se especifica el atributo | ||||
autofocus | autofocus | boolean | false | |
Indica si el componente debe recibir el foco automáticamente cuando la página termine de cargar. | ||||
tabindex | tabIndex | number | - | |
Orden del elemento al navegar con la tecla Tab. | ||||
Métodos
| Nombre | Parámetros | Valor de retorno |
|---|---|---|
click | void | |
Simula un clic del ratón en el elemento. | ||
focus |
| void |
Establece el foco en el elemento actual. Puede pasarse un objeto como parámetro con las siguientes propiedades:
| ||
blur | void | |
Quita el foco del elemento actual. | ||
Slots
| Nombre |
|---|
| (predeterminado) |
Texto del elemento de navegación. |
icon |
Icono. |
active-icon |
Elemento de icono en estado activo. |
badge |
Badge. |
CSS Custom Properties
| Nombre |
|---|
--shape-corner-indicator |
Tamaño de la esquina redondeada del indicador. Se puede especificar un valor de píxel concreto; pero se recomienda hacer referencia a design tokens. |
mdui-navigation-bar API
Propiedades
| Atributo | Propiedad | Reflect | Tipo | Predeterminado |
|---|---|---|---|---|
hide | hide | boolean | false | |
Indica si está oculto. | ||||
label-visibility | labelVisibility | 'auto' | 'selected' | 'labeled' | 'unlabeled' | 'auto' | |
Visibilidad del texto. Los valores posibles son:
| ||||
value | value | string | - | |
Valor del | ||||
scroll-behavior | scrollBehavior | 'hide' | 'shrink' | 'elevate' | - | |
Comportamiento al hacer scroll. Los valores posibles son:
| ||||
scroll-target | scrollTarget | string | HTMLElement | JQ<HTMLElement> | - | |
Elemento en el que se escuchan los eventos de scroll. El valor puede ser un selector CSS, un elemento DOM o un objeto JQ. Por defecto, escucha los eventos de scroll de | ||||
scroll-threshold | scrollThreshold | number | - | |
Distancia de desplazamiento necesaria para activar el comportamiento, en | ||||
order | order | number | - | |
Orden de layout de este componente dentro de | ||||
Eventos
| Nombre |
|---|
change |
Se dispara cuando cambia el valor. |
show |
Se dispara cuando comienza a mostrarse. Se puede evitar que se muestre llamando a |
shown |
Se dispara cuando la animación de mostrar se completa. |
hide |
Se dispara cuando comienza a ocultarse. Se puede evitar que se oculte llamando a |
Se dispara cuando la animación de ocultar se completa. |
Slots
| Nombre |
|---|
| (predeterminado) |
Componentes |
CSS Custom Properties
| Nombre |
|---|
--shape-corner |
Tamaño de la esquina redondeada del componente. Se puede especificar un valor de píxel concreto; pero se recomienda hacer referencia a design tokens. |
--z-index |
Valor CSS |