Descripción general del cajón de navegación de Web Components

    El Ignite UI for Web Components panel lateral de navegación proporciona navegación lateral que se puede expandir o contraer dentro del contenido. Una versión mini proporciona un acceso rápido a la navegación incluso cuando está cerrada. Su contenido es completamente personalizable y, al mismo tiempo, proporciona un estilo de elemento de menú predeterminado.

    Ejemplo de Web Components cajón de navegación

    Este ejemplo demuestra cómo crear el componente IgcNavDrawerComponent.

    EXAMPLE
    TS
    HTML
    add-drawer-items.css
    index.css

    ¿Te gusta esta muestra? Obtenga acceso a nuestro kit de herramientas de Ignite UI for Web Components completo y comience a crear sus propias aplicaciones en minutos. Descárgalo gratis.

    Uso

    En primer lugar, debe instalar el Ignite UI for Web Components ejecutando el siguiente comando:

    npm install igniteui-webcomponents
    cmd
    import { defineComponents, IgcNavDrawerComponent } from 'igniteui-webcomponents';
    
    defineComponents(IgcNavDrawerComponent);
    ts

    Para obtener una introducción completa a Ignite UI for Web Components, lea el tema Primeros pasos.

    Ignite UI for Web Components | CTA Banner

    Agregar elementos del cajón de navegación

    La forma más sencilla de empezar a utilizar IgcNavDrawerComponent es la siguiente:

    <igc-nav-drawer open="true">
        <igc-nav-drawer-header-item>
            Sample Drawer
        </igc-nav-drawer-header-item>
        <igc-nav-drawer-item>
            <igc-icon slot="icon" name="home"></igc-icon>
            <span slot="content">Home</span>
        </igc-nav-drawer-item>
        <igc-nav-drawer-item>
            <igc-icon slot="icon" name="search"></igc-icon>
            <span slot="content">Search</span>
        </igc-nav-drawer-item>
    </igc-nav-drawer>
    html

    Si todo ha ido bien deberías ver lo siguiente en tu navegador:

    EXAMPLE
    TS
    HTML
    add-drawer-items.css
    index.css

    Si bien se puede proporcionar cualquier contenido en el cajón, IgcNavDrawerItemComponent está disponible para aplicar estilos listos para usar a los elementos.

    Para mejorar un poco nuestro componente, podemos usarlo junto con IgcNavbarComponent. De esta forma podemos conseguir un look más completo y utilizar los métodos del cajón. Veamos cómo podemos usar esto en el siguiente ejemplo:

    <igc-navbar>
      <igc-icon slot="start" name="menu" id="menu"></igc-icon>
      <h2>Home</h2>
    </igc-navbar>
    
    <igc-nav-drawer id="navDrawer">
        <igc-nav-drawer-header-item>
            Sample Drawer
        </igc-nav-drawer-header-item>
        <igc-nav-drawer-item>
            <igc-icon slot="icon" name="home"></igc-icon>
            <span slot="content">Home</span>
        </igc-nav-drawer-item>
        <igc-nav-drawer-item>
            <igc-icon slot="icon" name="search"></igc-icon>
            <span slot="content">Search</span>
        </igc-nav-drawer-item>
    </igc-nav-drawer>
    html

    También agreguemos algunos botones de opción para mostrar todos los valores position. De esta manera cada vez que seleccionemos uno cambiaremos la posición del cajón.

    // ...
    import { defineComponents, IgcNavDrawerComponent, IgcRadioComponent, IgcRadioGroupComponent } from 'igniteui-webcomponents';
    
    defineComponents(IgcNavDrawerComponent, IgcRadioComponent, IgcRadioGroupComponent);
    this.navDrawer = document.getElementById('navDrawer') as IgcNavDrawerComponent;
    this.radioGroup = document.getElementById('radio-group') as IgcRadioGroupComponent;
    this.radioGroup.addEventListener('click', (radio: any) => {
        this.navDrawer.position = radio.target.value;
    });
    ts
    <igc-radio-group id="radio-group" alignment="horizontal">
        <igc-radio name="position" value="start" label-position="after" checked>Start</igc-radio>
        <igc-radio name="position" value="end" label-position="after">End</igc-radio>
        <igc-radio name="position" value="top" label-position="after">Top</igc-radio>
        <igc-radio name="position" value="bottom" label-position="after">Bottom</igc-radio>
    </igc-radio-group>
    html

    Y finalmente, necesitamos una forma de abrir y cerrar nuestro cajón de navegación. Hay un par de formas de lograr esto, pero para este ejemplo haremos lo siguiente:

    // ...
    const menu = document.getElementById('menu');
    const navDrawer = document.querySelector('igc-nav-drawer') as IgcNavDrawerComponent;
    
    menu!.addEventListener('click', () => {
        navDrawer.show();
    })
    
    document.getElementById('root')!.onclick = (e) => {
        if (e.target != document.getElementById('navDrawer')) {
            navDrawer.hide();
        }
    }
    ts

    Si todo va bien, su componente debería verse así:

    EXAMPLE
    TS
    HTML
    CSS

    Minivariante

    Con la variante mini, el cajón de navegación cambia su ancho en lugar de cerrarse. Sirve para mantener una navegación rápida, disponible en todo momento, dejando sólo los iconos. Para lograrlo, sólo necesitas configurar la mini ranura del cajón.

    <igc-nav-drawer position="start">
        <igc-nav-drawer-header-item>Sample Drawer</igc-nav-drawer-header-item>
        <igc-nav-drawer-item>
            <igc-icon slot="icon" name="home"></igc-icon>
            <span slot="content">Home</span>
        </igc-nav-drawer-item>
        <igc-nav-drawer-item>
            <igc-icon slot="icon" name="search"></igc-icon>
            <span slot="content">Search</span>
        </igc-nav-drawer-item>
        <div slot="mini">
            <igc-nav-drawer-item>
                <igc-icon slot="icon" name="home"></igc-icon>
            </igc-nav-drawer-item>
            <igc-nav-drawer-item>
                <igc-icon slot="icon" name="search"></igc-icon>
            </igc-nav-drawer-item>
        </div>
    </igc-nav-drawer>
    html

    Y aquí está el resultado:

    EXAMPLE
    TS
    HTML
    CSS

    Estilo

    El IgcNavDrawerComponent expone varias partes CSS -base, main, y mini, dándole control total sobre su estilo.

    igc-nav-drawer::part(base) {
      background: var(--ig-secondary-500);
    }
    
    igc-nav-drawer-item::part(base) {
      color: var(--ig-secondary-500-contrast);
    }
    
    igc-nav-drawer-item::part(base):hover {
      background-color: var(--ig-gray-800);
    }
    
    igc-nav-drawer-item[active]::part(base) {
      background: var(--ig-warn-500);
      color: var(--ig-warn-500-contrast);
    }
    
    igc-nav-drawer-header-item {
      color: var(--ig-warn-500);
    }
    scss

    EXAMPLE
    TS
    HTML
    drawer-styling.css
    index.css

    Referencias de API

    Recursos adicionales