2016-07-29 15 views
0

Wenn ich mein Menü öffne und es nach unten scrolle, schließe es und öffne es wieder, das Menü bleibt an diesem Punkt, aber ich möchte, dass es oben geöffnet wird, immer wenn du es auch mit einem Ankerlink öffnest .Nach oben scrollen

Ich habe dies hinzugefügt, um das Menü zu schließen, wenn Sie den Link klicken:

$("li > a").on("click", function() { 
     $(".drawer-hamburger").trigger("click"); 
    }); 

Alles funktioniert gut, außer dass sein Gehen nach oben nach dem erneuten Öffnen nicht.

Ich habe versucht:

$('#div').scrollTop(); 

Aber dies keine Wirkung hatte. Das einzige, was bisher funktioniert hat, war:

window.location.reload(true) 

Aber ich denke, es ist Overkill, die Seite jedes Mal neu zu laden.

Gibt es eine Möglichkeit, das Menü zu schließen und das Menü nach dem erneuten Öffnen, nach dem Klicken auf?

Das alles hat mit diesem Thema zu tun,

Turn blivesta animsition menu into off canvas (push body) menu

sondern weil es eine andere Frage ich es dachte wäre besser, ein neues Thema zu starten.

Edit: Lassen Sie mich genauer über die Situation sein. Ich öffne mein Menü, indem ich auf das Hamburger-Symbol klicke. Die Liste ist scrollbar, also wenn ich ein bisschen runter gehe, klicke auf den Anker-Link, das Menü schließt sich und ich bin an meinem Ankerpunkt. So weit, ist es gut. Wenn ich das Menü wieder öffne, ist es immer noch an der Stelle in meinem Menü, wo ich gescrollt habe. Aber ich möchte nach dem Öffnen wieder oben auf der Speisekarte stehen, ohne meine Seite zu aktualisieren.

Edit # 2: hier das feste Ergebnis beobachten: http://codepen.io/Jorus/pen/zBLBpy

+0

Haben Sie [scrollTops Dokumentation] (https://api.jquery.com/scrollTop/) gelesen? –

+0

Ja, ich tat, machte aber keinen Sinn. – Jorus

Antwort

3

Sie müssen 0px übersetzen:

$("li > a").on("click", function() { 
    $(".drawer-menu").css("transform","translate(0, 0) translateZ(0)"); 
    $(".drawer-hamburger").trigger("click"); 
}); 

Edited

+0

Ja, ich versuchte das auch, aber hatte keine Wirkung, weiß nicht warum. – Jorus

+0

@jorus Können Sie eine jsfiddle erstellen? – polamoros

+0

Ich habe versucht, in meinem anderen Thema aber nicht gut aus. Lass mich sehen, ob ich es wieder tun kann. – Jorus

0

Ich mag dieses Stück jQuery-Code verwenden, um die Seite zu einer bestimmten Position zu bewegen.

$("html,body").stop().animate({ scrollTop: 0 }, 1234, "swing"); 

Die stop() endet alle aktuell laufenden Animationen, dann definieren wir unsere animation auf dem scrollTop -Wertes zu arbeiten, bedeutet das 0 absoluten Spitze der Seite, setzen Sie in alles, was Sie brauchen, wie möglicherweise $('#targetElementId').scrollTop(). Das 1234 bedeutet, dass es 1,234 Sekunden dauert und "swing" ist eigentlich die Standard-easing-Funktion - die einzige Alternative ist linear.

+0

Damit bleibt mein Menü an seinem Scrollpunkt, aber "schwingt" nach oben auf meiner Seite. Netter Effekt, aber nicht für mein Menü. – Jorus

+0

Bitte fügen Sie eine Beschreibung hinzu, um den von Ihnen geposteten Code zu unterstützen. Warum löst das das Problem? –

+0

Während dieses Code-Snippet die Frage lösen kann, hilft [einschließlich einer Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, die Qualität Ihres Posts zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erläuternden Kommentaren zu überladen, da dies die Lesbarkeit sowohl des Codes als auch der Erklärungen verringert! – FrankerZ

0

Versuchen

var x = size of body; 
window.scrollBy(0, x); 

x Ist die Größe des Körpers in Pixeln.

window.scrollBy Funktion scrollt eine Anzahl von Pixeln, also wenn Sie die Größe des Körpers scrollen, werden Sie immer an der Spitze landen.

+0

Bitte bearbeiten Sie mit mehr Informationen. Code-only und "try this" Antworten werden abgeraten, da sie keine durchsuchbaren Inhalte enthalten und nicht erklären, warum jemand "das versuchen sollte". – Paritosh

+0

Vielleicht könnte das helfen: codepen.io/Jorus/pen/zBLbpy – Jorus

Verwandte Themen