MegaMenu

MegaMenuはサブメニューをまとめて表示するナビゲーションコンポーネントです。


import { MegaMenu } from 'primereact/megamenu';
         

MegaMenuは、メニュー項目のコレクションをモデルとして必要とします。


<MegaMenu model={items}  breakpoint="960px" />
 

MegaMenuのレイアウトは、orientationプロパティで変更され、horizontalverticalをオプションとして受け入れます。


<MegaMenu model={items} orientation="vertical" breakpoint="960px" />        
 

startendプロパティを使用して、カスタムコンテンツをメガメニュー内に配置できます。

avatar

<MegaMenu model={items} orientation="horizontal" start={start} end={end} breakpoint="960px" className="p-3 surface-0 shadow-2" style={{ borderRadius: '3rem' }} />
 

メニュー項目のcommandプロパティは、項目がクリックまたはキーイベントによってアクティブ化されたときに実行されるコールバックを定義します。


{
    label: 'Log out',
    icon: 'pi pi-signout',
    command: () => {
        // Callback to run
    }
}
         

ナビゲーションを持つ項目は、ルーターリンクコンポーネント、外部リンク、またはプログラムによるナビゲーションを使用できるように、commandプロパティで定義されます。


{
    label: 'Log out',
    icon: 'pi pi-signout',
    url: 'https://www.react.dev/',
    command: () => {
        router.push('/installation');
    }
}
         

スクリーンリーダー

MegaMenuコンポーネントは、aria-orientationとともにmenubarロールを使用し、コンポーネントを記述する値は、aria-labelledbyまたはaria-labelプロパティで提供できます。各リスト項目には、 presentationロールがあり、アンカー要素には項目のラベルを参照するaria-labelと、項目が無効になっている場合はaria-disabledが定義されたmenuitemロールがあります。MegaMenu内のサブメニューは、 サブメニューのルートメニュー項目のラベルのIDとして定義されたaria-labelledbyを持つmenuロールを使用します。さらに、サブメニューを開くルートメニュー項目には、項目とサブメニュー間の関係を定義するaria-haspopuparia-expanded、およびaria-controlsがあります。

キーボードサポート

キー機能
tabフォーカスがメニューに移動した場合、最初の項目にフォーカスを追加します。フォーカスがすでにメニュー内にある場合、フォーカスはページタブシーケンスの次のフォーカス可能な項目に移動します。
shift + tabフォーカスがメニューに移動した場合、最後の項目にフォーカスを追加します。フォーカスがすでにメニュー内にある場合、フォーカスはページタブシーケンスの前のフォーカス可能な項目に移動します。
enterメニュー項目にサブメニューがある場合、サブメニューの表示/非表示を切り替え、それ以外の場合はメニュー項目をアクティブ化して、開いているすべてのオーバーレイを閉じます。
spaceメニュー項目にサブメニューがある場合、サブメニューの表示/非表示を切り替え、それ以外の場合はメニュー項目をアクティブ化して、開いているすべてのオーバーレイを閉じます。
escapeフォーカスがポップアップサブメニュー内にある場合、サブメニューを閉じて、閉じたサブメニューのルート項目にフォーカスを移動します。
下矢印フォーカスがルート要素にある場合、サブメニューを開き、フォーカスをサブメニューの最初の要素に移動します。それ以外の場合は、フォーカスをサブメニュー内の次のメニュー項目に移動します。
上矢印フォーカスがルート要素にある場合、サブメニューを開き、フォーカスをサブメニューの最後の要素に移動します。それ以外の場合は、フォーカスをサブメニュー内の前のメニュー項目に移動します。
右矢印フォーカスがルート要素にある場合、フォーカスを次のメニュー項目に移動します。フォーカスがサブメニュー内にある場合、フォーカスを次のメニュグループの最初のメニュー項目に移動します。
左矢印フォーカスがルート要素にある場合、フォーカスを前のメニュー項目に移動します。フォーカスがサブメニュー内にある場合、フォーカスを前のメニュグループの最初のメニュー項目に移動します。
homeフォーカスをサブメニュー内の最初のメニュー項目に移動します。
endフォーカスをサブメニュー内の最後のメニュー項目に移動します。