Hallo Bernhard,
freut mich, dass Du mein Buch gekauft hast und durcharbeitest!
Über kurz oder lang wirst Du nicht darum herum kommen, Dich näher mit 1. HTML, 2. CSS, 3. PHP und JavaScript zu beschäftigen.
Richtig, dass mit der Hauptnavigation in der mobilen Ansicht ist nicht ganz so doll. Da gibt's allerdings ein paar Dinge zu berücksichtigen, die sich - je nach Lösung - gegenseitig behindern würden.
1. Die Navigation wird - egal wo ich auf der Seite bin - genau dort eingeblendet.
Kann man machen, führt aber dazu, dass diese Box nicht scrollbar ist sondern festgenagelt bleibt - auch dann, wenn die Navigationspunkte vertikal nicht alle auf den Bildschirm passen. Das würde dann die Funktion wesentlich einschränken. Beim Hamburger-Icon ist das kein Problem, der hat ja eine fixe Größe. Man kann hier zwar auch wieder was mit JavaScript dengeln, aber dann würde man in dieser Navigationsbox zum Beispiel wieder einen weiteren vertikalen Scrollbalken haben. Alles so mit Vor- und Nachteilen.
2. Das, woran Du schon gedacht hast
Anderer Denkansatz: Wenn man auf den "Hamburger-Menü" klickt, könnte auch ein automatischer Scroll der ganzen Seite nach oben das Problem lösen...
Das lässt sich leicht bewerkstelligen.
Öffne dazu das Modul "head_js_general_backend_css" (wird im Verlauf des Buchs umbenannt, bzw. das anfängliche "head_js_general..." wird ergänzt) und schau Dir die Modul-Ausgabe an. Dort findest Du die function "show_hide". Die ergänzt Du um eine Zeile:
Code: Alles auswählen
function show_hide(var_element_id)
{
if(var_element_id=='navigation_main') window.scrollTo(0,0);
Mit der wird geprüft, ob die Hauptnavigation ein-/ausgeblendet werden soll (wird die Funktion für andere Elemente verwendet würde das ja ziemlich stören). Wenn ja, erfolgt ein Scrolling (ohne Animation) zum Seitenanfang.
Das hat zwar den Nachteil, dass man auf längeren Seiten - sofern man nicht auf eine andere Seite wechseln sollte - wieder runterscrollen müsste um dort weiterzulesen wo man war, allerdings bleibt die Box der Hauptnavigation scrollbar - und damit alle Navigationspunkte aufrufbar.
Ich schau mal, inwiefern ich noch eine bessere Lösung einstelle.
Wie Homtata schon schrieb
Ich arbeite viel mit Bootstrap (dort gibt es eingebaute Routinen für sowas, in die man sich etwas einfuchsen muss), ich habe aber auch viele Seiten mit einem jQuery-Plugin namens mmenu laufen, aber auch da gilt es einiges zu verstehen und aufzusetzen mit jQuery, CSS & Co.
Auf diesen Aspekt bin ich im Buch ja auch eingegangen.
Viele Grüße
Markus