Wenn Sie auf "PRODUKTE" klicken, schiebe ich ein weißes Div nach oben (siehe Anhang). Im reaktionsschnellen Modus (Handy und Tablet) möchte ich die reaktionsfähige Navigationsleiste automatisch schließen und nur den weißen Balken anzeigen.
Ich habe es versucht:
$('.btn-navbar').click();
auch versucht:
$('.nav-collapse').toggle();
Und es funktioniert. In der Desktop-Größe wird es jedoch auch aufgerufen und macht etwas Ungewöhnliches im Menü, wo es für eine Sekunde schrumpft.
Irgendwelche Ideen?
javascript
html
css
twitter-bootstrap
user1040259
quelle
quelle
Antworten:
Ich muss mit Animation arbeiten!
Menü in HTML:
Bindungsklickereignis für alle Elemente in der Navigation zum Reduzieren-Menü (Bootstrap-Kollaps-Plugin):
BEARBEITEN Um es allgemeiner zu gestalten, können wir das folgende Code-Snippet verwenden
quelle
a
Elemente: Sie müssen nur anrufen$("#nav-main").collapse('hide');
Sie müssen kein zusätzliches Javascript zu dem hinzufügen, was bereits in der Option zum Reduzieren von Bootstraps enthalten ist. Fügen Sie stattdessen einfach Datenumschalt- und Datenziel-Selektoren in Ihre Menülistenelemente ein, genau wie Sie es mit Ihrer Navbar-Umschalttaste tun. Für Ihren Menüpunkt Produkte würde dies also so aussehen
Dann müssten Sie die Datenumschalt- und Datenzielauswahl für jeden Menüpunkt wiederholen
BEARBEITEN!!! Um Überlaufprobleme zu beheben und bei diesem Fix zu flackern, füge ich weiteren Code hinzu, der dies behebt und immer noch kein zusätzliches Javascript enthält. Hier ist der neue Code:
Hier ist es bei der Arbeit http://jsfiddle.net/jaketaylor/84mqazgq/
Dadurch werden Ihre Umschalt- und Zielauswahl für die Bildschirmgröße spezifisch und Störungen im größeren Menü werden vermieden. Wenn jemand immer noch Probleme mit Störungen hat, lassen Sie es mich bitte wissen und ich werde eine Lösung finden. Vielen Dank
BEARBEITEN : Im Bootstrap v4.1.3 konnte ich keine sichtbaren / versteckten Klassen verwenden. Anstelle von
hidden-xs
Gebrauchd-none d-sm-block
und stattvisible-xs
Gebrauchd-block d-sm-none
.quelle
data-toggle
unddata-target
hinzuzufügen, können Sie sie auch dem übergeordneten Elementul
oder dendiv
Tags hinzufügen .Ich denke, Sie sind alle über Engineering ..
BEARBEITEN: Um sich um Untermenüs zu kümmern, stellen Sie sicher, dass auf ihrem Umschaltanker die Dropdown-Umschaltklasse vorhanden ist.
BEARBEITEN 2: Unterstützung für Telefonberührung hinzufügen.
quelle
Jake Taylors Idee, es ohne zusätzliches JavaScript zu machen und den Zusammenbruch von Bootstrap zu nutzen, hat mir sehr gut gefallen. Ich habe festgestellt, dass Sie das Problem "Flackern" beheben können, wenn sich das Menü nicht im reduzierten Modus befindet, indem Sie den
data-target
Selektor leicht ändern, um diein
Klasse einzuschließen. So sieht es aus:Ich habe es nicht mit verschachtelten Dropdowns / Menüs getestet, also YMMV.
quelle
Nur um vollständig zu sein, hat in Bootstrap 4.0.0-Beta die Verwendung von .show für mich funktioniert ...
quelle
Ich gehe davon aus, dass Sie eine Linie wie diese haben, die den Navigationsbereich definiert, basierend auf Bootstrap-Beispielen und allem
Fügen Sie einfach die Eigenschaften als solche hinzu, wie auf der Schaltfläche MENÜ
Ich habe hinzugefügt
<body>
, gearbeitet. Ich kann nicht sagen, dass ich ein Profil erstellt habe oder so, aber es scheint mir ein Vergnügen zu sein ... bis Sie auf eine zufällige Stelle der Benutzeroberfläche klicken, um das Menü zu öffnen, also nicht so gut.DK
quelle
Dies funktioniert, wird aber nicht animiert.
quelle
Im HTML hat ich eine Klasse von nav-Link zu dem einem Tag jeden Navigationslink.
quelle
Diese Lösung funktioniert gut auf Desktop und Mobile.
quelle
Fügen Sie diesen Code zu $ (document) .ready (function () {}) hinzu, um die Lösung von user1040259 zu erläutern.
Wie bereits erwähnt, wird dadurch die Bewegung nicht animiert, aber die Navigationsleiste bei der Elementauswahl wird geschlossen
quelle
Für diejenigen, die AngularJS und Angular UI Router verwenden, ist hier meine Lösung (mit Mollwe's Toggle). Wobei ".navbar-main -apse" mein "Datenziel" ist.
Direktive erstellen:
Richtlinie verwenden:
quelle
Dies sollte den Trick tun.
Benötigt bootstrap.js.
Beispiel => http://getbootstrap.com/javascript/#collapse
Dies entspricht dem Hinzufügen der Attribute 'data-toggle = "apse "und' href =" yournavigationID "'zu Navigationsmenü-Tags.
quelle
Ich benutze die Mollwe-Funktion, obwohl ich 2 Verbesserungen hinzugefügt habe:
a) Vermeiden Sie das Schließen der Dropdown-Liste, wenn der angeklickte Link reduziert ist (einschließlich anderer Links).
b) Blenden Sie das Dropdown-Menü auch aus, wenn Sie auf den sichtbaren Webinhalt klicken.
quelle
Nicht der neueste Thread, aber ich suchte nach einer Lösung für das gleiche Problem und fand eine (eine Mischung aus einigen anderen).
Ich gab den NavButton:
eine ID / Kennung wie:
Nicht die beste "Idee" - aber: Funktioniert für mich! Jetzt können Sie die Sichtbarkeit Ihrer Schaltfläche (mit jquery) wie folgt überprüfen:
(HINWEIS: Dies ist nur ein abgeschnittener Code! Ich habe ein "Onclick" -Ereignis für meine Navigationslinks verwendet! (Starten eines AJAX-Reguest.)
Das Ergebnis ist: Wenn die Schaltfläche "sichtbar" ist, wurde sie "angeklickt" ... Also: Kein Fehler, wenn Sie die "Vollbildansicht" von Bootstrap verwenden (Breite über 940px).
Grüße Ralph
PS: Es funktioniert gut mit IE9, IE10 und Firefox 25. Andere wurden nicht überprüft - aber ich kann kein Problem erkennen :-)
quelle
Das hat bei mir funktioniert. Wenn ich auf die Menüschaltfläche klicke, füge ich die Klasse 'in' hinzu oder entferne sie, weil durch Hinzufügen oder Entfernen dieser Klasse der Umschalter standardmäßig funktioniert. 'e.stopPropagation ()' dient zum Stoppen der Standardanimation per Bootstrap (ich denke). Sie können auch die 'toggleClass' anstelle der Klasse add oder remove verwenden.
$ ('# ChangeToggle'). On ('click', Funktion (e) {
quelle
Sie können verwenden
Dadurch wird die Navigationsleiste standardmäßig geschlossen. Bitte lassen Sie mich wissen, dass jemand dies nützlich findet
quelle
Wenn Ihr umschaltbares Symbol beispielsweise nur für besonders kleine Geräte sichtbar ist, können Sie Folgendes tun:
Wenn Sie auf [data-toggle = "offcanvas"] klicken, werden die .hidden-xs von bootstrap zu meinem # Seitenmenü hinzugefügt, wodurch der Inhalt des Seitenmenüs ausgeblendet wird. Wenn Sie das Fenster vergrößern, wird es jedoch wieder sichtbar.
quelle
wenn Menü HTML ist
on nav toggle 'in' Klasse wird hinzugefügt und aus dem Toggle entfernt. Überprüfen Sie, ob das Reaktionsmenü geöffnet ist, und führen Sie dann das Schließen um.
quelle
Tuggle Nav Close, IE-Browser-kompatible Antwort, ohne Konsolenfehler. Wenn Sie Bootstrap verwenden, verwenden Sie dies
quelle
quelle
Bootstrap 4-Lösung ohne Javascript
Fügen Sie dem
data-toggle="collapse" data-target="#navbarSupportedContent.show"
div Attribute hinzu<div class="collapse navbar-collapse">
Stellen Sie sicher , dass Sie den richtigen
id
indata-target
quelle