11
Ausgehend von dem Code, den ich im Eingangspost gepostet habe, habe ich nun das JavaScript unten angelegt, mit dem sich leider nichts tut.
Grundsätzlich funktioniert die JS-Datei, der übliche Hello World-Test hat mit meinem Nav-Button funktioniert.
Ich habe mich am ehesten an dem freecodecamp-Beispiel orientiert, wobei dort das Ganze wegen der DD-Untermenüs komplexer ist und seltsamerweise im HTML für nav und das div, in dem die ul steckt, die gleiche Klasse "menu" vergeben wurde.
Die eigentliche Toggle-Funktion macht jedes Beispiel etwas anders. Zwei Beispiele mit "if, else", zwei andere mit einer weiteren Konstante "(is)Expanded".
Bei dem kurzen JS von https://xane514.medium.com/aria-controls-for-creating-a-mobile-navbar-6001012153a0 , der eine "const expanded" anlegt, kommt der EventListener ganz am Schluss des Codes?
Zum Einblenden des ul-Menüs habe ich eine Klasse "menue-zeigen" im MQ ergänzt, angelehnt an die show-Klasse beim freecodecamp-Beispiel. Die Toggle-Funktion "toggle-Button" nimmt das dann auf:
Der JS-Code sieht wie folgt aus und ich verstehe das so einigermaßen. Was müsste man daran ändern (liegt wohl am Menü einblenden)?
Grundsätzlich funktioniert die JS-Datei, der übliche Hello World-Test hat mit meinem Nav-Button funktioniert.
Ich habe mich am ehesten an dem freecodecamp-Beispiel orientiert, wobei dort das Ganze wegen der DD-Untermenüs komplexer ist und seltsamerweise im HTML für nav und das div, in dem die ul steckt, die gleiche Klasse "menu" vergeben wurde.
Die eigentliche Toggle-Funktion macht jedes Beispiel etwas anders. Zwei Beispiele mit "if, else", zwei andere mit einer weiteren Konstante "(is)Expanded".
Bei dem kurzen JS von https://xane514.medium.com/aria-controls-for-creating-a-mobile-navbar-6001012153a0 , der eine "const expanded" anlegt, kommt der EventListener ganz am Schluss des Codes?
Zum Einblenden des ul-Menüs habe ich eine Klasse "menue-zeigen" im MQ ergänzt, angelehnt an die show-Klasse beim freecodecamp-Beispiel. Die Toggle-Funktion "toggle-Button" nimmt das dann auf:
ul.headnav-haupt-ul.menue-zeigen {
display: block;
}
Der JS-Code sieht wie folgt aus und ich verstehe das so einigermaßen. Was müsste man daran ändern (liegt wohl am Menü einblenden)?
// button und ul der headnav als Konstanten definiert
const headnavButton = document.querySelector('.headnav-button');
const headnavMenue = document.querySelector('.headnav-haupt-ul');
// der Button bekommt eine EventListener-Klick-Funktion; Funkt.-Name
headnavButton.addEventListener("click", toggleButton);
// Jetzt wird die Funktion "toggleButton" definiert
function toggleButton() {
headnavMenue.toggle("menue-zeigen"); //im MQ neu angelegt
headnavButton.setAttribute(
"aria-expanded",
headnavButton.getAttribute("aria-expanded") === "false" ? "true" : "false"
);
}