Schnellstart: Hinzufügen eines Headermenüs (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation ]

In dieser Schnellstartanleitung erfahren Sie, wie Sie einer Windows Store-App mit JavaScript ein Headermenü hinzufügen.

Voraussetzungen

Definieren des Headers und des Menüs

So erstellen Sie ein Headermenü

  1. Konvertieren Sie den Titel Ihrer App in eine Schaltfläche, die ein Menu-Steuerelement startet.
  2. Fügen Sie dem Titel ein Chevron hinzu, um anzugeben, dass er ein Menü startet.
  3. Füllen Sie die Menüsteuerelemente mit Elementen auf, durch die Ihre App zu den korrekten Abschnitten navigiert.

Wenn Sie nach dieser Schnellstartanleitung vorgegangen sind, sieht das erstellte Headermenü in etwa wie folgt aus:

Headermenü für eine Musik-App
Headermenü für eine Musik-App

 

Der folgende Code definiert ein Banner mit einem Chevron am Ende sowie das Menü. Sie finden diesen Code in der Datei "header-menu.html" im Headermenübeispiel.

<!-- Define the banner with a chevron at the end -->
<header aria-label="Header content" role="banner">
    <button class="win-backbutton" aria-label="Back">
    </button>
    <div class="titlearea win-type-ellipsis">
        <button class="titlecontainer">
            <h1>
                <span class="pagetitle">Music</span>
                <span class="chevron win-type-x-large">&#xe099;</span></h1>
        </button>
</header>
<!-- Define the header menu -->
<div id="headerMenu" data-win-control="WinJS.UI.Menu">
    <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{id:'collectionMenuItem',label:'Collection'}">
    </button>
    <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{id:'marketplaceMenuItem',label:'Marketplace'}">
    </button>
    <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{id:'newsMenuItem',label:'News'}">
    </button>
    <hr data-win-control="WinJS.UI.MenuCommand" data-win-options="{id:'separator',type:'separator'}" />
    <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{id:'homeMenuItem',label:'Home'}">
    </button>
</div>

Anfügen von Klickereignissen an die Elemente des Headermenüs

Der folgende Code fügt dem Menüinhalt Klickereignishandler an. Der folgende Code befindet sich in der Datei "header-menu.js" im Headermenübeispiel.

var page = WinJS.UI.Pages.define("/html/header-menu.html", {
        ready: function (element, options) {
            document.querySelector(".titlearea").addEventListener("click", showHeaderMenu, false);
            document.getElementById("artistsMenuItem").addEventListener("click", function() { goToSection("Collection"); }, false);
            document.getElementById("albumsMenuItem").addEventListener("click", function () { goToSection("Marketplace"); }, false);
            document.getElementById("songsMenuItem").addEventListener("click", function () { goToSection("News"); }, false);
            document.getElementById("homeMenuItem").addEventListener("click", function () { goHome(); }, false);
        }
    });

    // Place the flyout under the title and left-aligned
    function showHeaderMenu() {
        var title = document.querySelector("header .titlearea");
        var menu = document.getElementById("headerMenu").winControl;
        menu.anchor = title;
        menu.placement = "bottom";
        menu.alignment = "left";

        menu.show();
    }

Optional: Aktualisieren der Headeruntertitel bei der Navigation durch Benutzer

Zur Erleichterung der Orientierung können Sie die Untertitel aktualisieren, wenn die Benutzer durch die App navigieren.

    // When navigating using the header menu for sections, 
    // change the subtitle to reflect the current pivot 
    function goToSection(section) { 
        WinJS.log && WinJS.log("You are viewing the " + section + " section.", 
            "sample", "status"); 
    } 
 
    // Hide the subtitle if no pivot is being used 
    function goHome() { 
        WinJS.log && WinJS.log("You are home.", "sample", "status"); 
    } 

Anwenden von Stilen

Sie können diese Stile in der Datei "header-menu.css" anzeigen.

/* styles */

/* Styles for the header */
 header[role=banner]
{
    /* Define a grid with columns for the back button and page title. */
    -ms-grid-columns: 120px 1fr;
    -ms-grid-rows: 1fr;
    display: -ms-grid;
}

 header[role=banner] .win-backbutton
{
    -ms-grid-column:1;
    margin-left: 39px;
    margin-top: 59px;
}

header[role=banner] .titlearea {
    -ms-grid-column:2;
    padding-top:43px;
}

header[role=banner] .titlecontainer
{
    display:inline;
    background-color:transparent;
    border:none;
}

header[role=banner] .subtitlecontainer 
{
    display:inline;
    margin-left:26px;    
}

header[role=banner] .titlearea .pagetitle
{
    width: calc(100% - 20px);
}

header[role=banner] .titlearea .chevron {
    vertical-align:8px;
}

header[role=banner] .titlecontainer:hover
{    
    color: rgb(50,154,163); 
}

header[role=banner] .titlecontainer:active
{
    color: rgb(37,187,196); 
}
    
#headerMenu {
    width:300px;
}

Zusammenfassung

In dieser Schnellstartanleitung haben Sie Ihrer App eine Headermenü hinzugefügt.

Verwandte Themen

Menu

MenuCommand

Headermenübeispiel

Navigationsdesign

Unterstützen der Navigation

Auswählen der richtigen Benutzeroberflächen

Grundlegendes zur Silhouette von Windows 8