Компоненты PrimeNG
SlideMenu

Слайд Меню

PrimeNG/SlideMenu (opens in a new tab)

Slide Menu отображает подменю с анимацией слайдов.

С чего начать

Подключите модуль

import { SlideMenuModule } from 'primeng/slidemenu';
import { MenuItem } from 'primeng/api';

Встройте компонент с помощью тэга p-slideMenu.

<p-slideMenu [model]="items"></p-slideMenu>

Basic

<p-slideMenu [model]="items" [viewportHeight]="220"></p-slideMenu>

Popup

import { Component, OnInit } from '@angular/core';
import { MenuItem } from 'primeng/api';
 
@Component({
  selector: 'app-prime-slidemenu',
  templateUrl: './prime-slidemenu.component.html',
  styleUrls: ['./prime-slidemenu.component.scss'],
})
export class PrimeSlidemenuComponent implements OnInit {
  constructor() {}
 
  items: MenuItem[] = [];
 
  ngOnInit(): void {
    this.items = [
      {
        label: 'File',
        icon: 'pi pi-fw pi-file',
        items: [
          {
            label: 'New',
            icon: 'pi pi-fw pi-plus',
            items: [
              {
                label: 'Bookmark',
                icon: 'pi pi-fw pi-bookmark',
              },
              {
                label: 'Video',
                icon: 'pi pi-fw pi-video',
              },
            ],
          },
          {
            label: 'Delete',
            icon: 'pi pi-fw pi-trash',
          },
          {
            separator: true,
          },
          {
            label: 'Export',
            icon: 'pi pi-fw pi-external-link',
          },
        ],
      },
      {
        label: 'Edit',
        icon: 'pi pi-fw pi-pencil',
        items: [
          {
            label: 'Left',
            icon: 'pi pi-fw pi-align-left',
          },
          {
            label: 'Right',
            icon: 'pi pi-fw pi-align-right',
          },
          {
            label: 'Center',
            icon: 'pi pi-fw pi-align-center',
          },
          {
            label: 'Justify',
            icon: 'pi pi-fw pi-align-justify',
          },
        ],
      },
      {
        label: 'Users',
        icon: 'pi pi-fw pi-user',
        items: [
          {
            label: 'New',
            icon: 'pi pi-fw pi-user-plus',
          },
          {
            label: 'Delete',
            icon: 'pi pi-fw pi-user-minus',
          },
          {
            label: 'Search',
            icon: 'pi pi-fw pi-users',
            items: [
              {
                label: 'Filter',
                icon: 'pi pi-fw pi-filter',
                items: [
                  {
                    label: 'Print',
                    icon: 'pi pi-fw pi-print',
                  },
                ],
              },
              {
                icon: 'pi pi-fw pi-bars',
                label: 'List',
              },
            ],
          },
        ],
      },
      {
        label: 'Events',
        icon: 'pi pi-fw pi-calendar',
        items: [
          {
            label: 'Edit',
            icon: 'pi pi-fw pi-pencil',
            items: [
              {
                label: 'Save',
                icon: 'pi pi-fw pi-calendar-plus',
              },
              {
                label: 'Delete',
                icon: 'pi pi-fw pi-calendar-minus',
              },
            ],
          },
          {
            label: 'Archieve',
            icon: 'pi pi-fw pi-calendar-times',
            items: [
              {
                label: 'Remove',
                icon: 'pi pi-fw pi-calendar-minus',
              },
            ],
          },
        ],
      },
      {
        separator: true,
      },
      {
        label: 'Quit',
        icon: 'pi pi-fw pi-power-off',
      },
    ];
  }
}

Свойства

NameTypeDefaultDescription
modelarraynullAn array of menuitems.
popupbooleanfalseDefines if menu would displayed as a popup.
stylestringnullInline style of the component.
styleClassstringnullStyle class of the component.
easingstringease-outEasing animation to use for sliding.
effectDurationany250Duration of the sliding animation in milliseconds.
backLabelstringBackLabel of element to navigate back.
menuWidthnumber180Width of the submenus.
viewportHeightnumber175Height of the scrollable area, a scrollbar appears if a menu height is longer than this value.
appendToanynullTarget element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
baseZIndexnumber0Base zIndex value to use in layering.
autoZIndexbooleantrueWhether to automatically manage layering.
showTransitionOptionsstring.12s cubic-bezier(0, 0, 0.2, 1)Transition options of the show animation.
hideTransitionOptionsstring.1s linearTransition options of the hide animation.

Методы

NameParametersDescription
toggleevent: browser eventToggles the visibility of the popup menu.
showevent: browser eventDisplays the popup menu.
hide-Hides the popup menu.

Стилизация

NameElement
p-slidemenuContainer element.
p-slidemenu-wrapperWrapper of content.
p-slidemenu-contentContent element.
p-slidemenu-backwardElement to navigate to previous menu on click.
p-menu-listList element.
p-menuitemMenuitem element.
p-menuitem-textLabel of a menuitem.
p-menuitem-iconIcon of a menuitem.
p-submenu-iconArrow icon of a submenu.