Okay
  Public Ticket #1956956
Anker-Links im mobilen Menü von Pukeko funktionieren nicht
Open

Comments

  •  3
    Raphael started the conversation

    Hallo,

    als 2. Unterpunkt im Menü eingefügte Ankerlinks funktionieren zwar in der Desktop-Ansicht, und auch im mobilen Menü, wenn sie von einer anderen Seite aus aufgerufen werden.

    Wenn man sich allerdings auf einer Seite befindet und dann von dort aus im mobilen Menü einen Submenü-Ankerlink anklickt, dessen Ziel sich auf derselben Seite befindet, passiert nichts.

    Viele Grüße,
    Raphael

    PS: Unter "Related URL" habe ich einen temporären Link für die Ansicht der Website eingefügt, um die es geht. Sie befindet sich noch im Wartungsmodus, ist also nicht über die reguläre URL zu erreichen.

    Attached files:  Bildschirmfoto 2019-04-01 um 15.05.21.png
      Bildschirmfoto 2019-04-01 um 15.04.17.png

  •  848
    Marc replied

    Hallo Raphael,

    wir arbeiten bereits an diesem Problem. Bis wir eine Lösung in einem Theme-Update unterbringen konnten, kannst du folgenden Code vor der letzten Zeile der assets/js/custom.js deines Themes einfügen:

    $('#nav-wrap a[href*=#]').click(function() {
            var str = $(this).attr('href');
            var from = window.location.href;
            from = from.substring(0, from.lastIndexOf("/") + 1);
            var rest = str.substring(0, str.lastIndexOf("/") + 1);
            var last = str.substring(str.lastIndexOf("/") + 1, str.length);
        if (rest == from) {
            $( 'body' ).toggleClass( 'mobilemenu-active' );
        }
        });
    

    Bitte leere im Anschluss deinen Browser-Cache um dies zu testen.

    Viele Grüße
    Marc

  •  3
    Raphael replied

    Hallo Marc,

    super, vielen Dank für die schnelle Hilfe!! Es funktioniert jetzt. Ich hatte zwar die Ahnung, dass es eine fehlende JavaScript Funktion sein könnte, bin aber leider nicht firm darin.

    Noch eine ergänzende Frage: Wäre es auch möglich, wenn ein Ankerlink von einer anderen Seite aus aufgerufen wird, dass die angezeigte URL nicht den Anker enthält. So ist es ja jetzt auch innerhalb einer Seite. Also wenn der verweisende Link im Menü z.B. lautet: http://tango-in-koeln.de/tango-unterricht/#tango-studentenkurs , dass dann nur http://tango-in-koeln.de/tango-unterricht/ in der Adressleiste erscheint, aber der Ziel-Abschnitt innerhalb der Seite aufgerufen wird.

    Viele Grüße,

    Raphael


  •  848
    Marc replied

    Hallo Raphael,

    das wäre durchaus möglich. Bitte habe jedoch Verständnis dafür, dass wir keinen Support für individuelle Anpassungen leisten können.

    Viele Grüße
    Marc

  •  3
    Raphael replied

    Hallo Marc,

    bitte entschuldige meine etwas späte Antwort.

    Meine letzte Frage war auch nicht als Bitte um eine individuelle Anpassung gedacht, sondern als Anregung die von dir unten genannte Lösung für das Pukeko-Theme noch etwas zu verbessern, da es sich ja offensichtlich um einen Bug im Theme handelt. :-)

    Leider habe ich jetzt festgestellt, dass das vorgeschlagene Code-Snippet noch nicht so funktioniert wie es sein sollte. Es gibt folgendes Verhalten (aber nur im Desktop-Menü) z.B. auf der Seite https://lapista.koeln/tango-unterricht/ :

    1. Mit der Maus über den Menü-Punkt "Unterricht" gehen, so dass das Untermenü aufklappt

    2. Z.B. den Untermenü-Punkt "Workshops" anklicken: es erfolgt das automatische Scrollen bis zum entsprechenden Anker

    3. Jetzt lässt sich die Seite nicht mehr scrollen, sonder "hängt" fest

    4. Wenn jetzt erneut der Untermenü-Punkt "Workshops" oder einer der anderen Punkte angeklickt wird, wird die Seite wieder "beweglich"

    5. Wird danach wiederum "Workshops" angeklickt, springt die Seite zum einem undefinierten Bereich.

    6. Ab und zu wird auch sofort ein falscher Anker aufgerufen, wenn ein Untermenü-Punkt angeklickt wird.

    Das Verhalten ist nur zu beobachten, wenn man sich bereits auf der Seite befindet. Springt man von einer anderen Seite direkt zu einem Untermenü-Punkt, funktioniert es zunächst wie vorgesehen. Erst beim erneuten Anklicken eines Untermenü-Punktes geschieht dann das o.g. Verhalten.

    Evtl. hat es etwas mit dem mobilen Menü zu tun? Denn wenn man nach dem ersten Anklicken des Untermenüs im Browser auf die mobile Ansicht wechselt, ist das mobile Menü aufgeklappt.

    Vielen Dank für deine Hilfe!

    Raphael

  •  848
    Marc replied

    Hallo Raphael,

    dieses Verhalten ist grundsätzlich so gewollt und kein Bug. Es soll möglich sein nach dem Seitenwechsel die erreichte Seite samt Anker in der Adresszeile des Browsers vorzuhalten.

    Das "festhängen" kann ich leider nicht nachvollziehen. Kannst du mir sagen mit welchem Browser und Betriebssystem das Problem entsteht? Verwendest du eine klassische Maus oder ein Trackpad?

    Viele Grüße
    Marc

  •  3
    Raphael replied

    Hallo Marc,

    vielen Dank für deine Antwort.

    Bzgl. „festhängen“: Ich habe das in verschiedenen Browsern (Firefox, Chromium, Opera, Safari, jeweils aktuellste Version) getestet. Ich verwende das Trackpad eines MacBook Pro mit OS X 10.11.6. Das Verhalten tritt aber auch mit einer Bluetooth-Maus auf.

    Zu URL mit Anker: Welchen Vorteil/Sinn hat/macht es denn, wenn beim Seitenwechsel die URL der erreichten Seite den Anker enthält, beim Aufrufen eines Ankerlinks auf derselben Seite der Anker aber nicht in der URL vorgehalten wird? Der User sieht dann doch auch nicht, welches Ziel er gerade aufgerufen hat. Das ist doch kein einheitliches Verhalten?

    Viele Grüße,

    Raphael

  •  848
    Marc replied

    Hallo Raphael,

    vielen Dank für die Info. Ich konnte es nun mit Chrome nachvollziehen und das Problem erkennen. Ich werde den Code weiter anpassen, so dass dieses Problem zukünftig nicht mehr auftritt und mich erneut bei dir melden.

    Du hast recht, dass einheitliches Verhalten grundsätzlich erwünscht ist, jedoch ist es speziell beim Seitenwechsel erwünscht, dass die URL in der Adresszeile bei dessen erneuten Aufruf z. B. durch Kopieren und Wiederverwenden / Weiterleiten zum gleichen Ziel führt. Wir werden uns dies noch einmal genauer anschauen, so dass wir auch innerhalb der Seite dieses Verhalten implementieren können, welches derzeit aufgrund anderer Mechanismen gänzlich "ausgeschaltet" ist.

    Viele Grüße
    Marc

  •  3
    Raphael replied

    Hallo Marc,

    schön dass du es nachvollziehen konntest, danke für die Hilfe und für die Infos zu den Ankerlinks.

    Viele Grüße,

    Raphael


  •  3
    Raphael replied

    Hallo Marc,

    ich wollte noch mal nachfragen, ob du schon dazu gekommen bist den Code für die custom.js (s.u.) anzpassen?

    Danke und viele Grüße,

    Raphael

  •  848
    Marc replied

    Hallo Raphael,

    der folgende Code sollte das Problem des Festhängens lösen:

    $('#nav-wrap a[href*=#]').click(function() {
        var str = $(this).attr('href');
        var from = window.location.href;
        from = from.substring(0, from.lastIndexOf("/") + 1);
        var rest = str.substring(0, str.lastIndexOf("/") + 1);
        var last = str.substring(str.lastIndexOf("/") + 1, str.length);
        if (rest == from) {
            $( 'body' ).removeClass( 'mobilemenu-active' );
        }
    });

    Viele Grüße
    Marc

  •  3
    Raphael replied

    Hallo Marc,

    super, vielen lieben Dank!

    Jetzt funktioniert es :-)

    Viele Grüße,
    Raphael