Ich habe einige echte Probleme beim Versuch, meine Seitenleisten- / Navigationsinhalte (mithilfe von Bootstrap) standardmäßig auf dem Desktop anzuzeigen (zu erweitern) und standardmäßig auf Mobilgeräten zu schließen und das Symbol nur auf Mobilgeräten anzuzeigen. Ich kann das scheinbar nicht zum Laufen bringen.
<nav class="menu menu-open" id="theMenu">
<div class="menu-wrap">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-bars menu-close d-lg-none" id="menu-toggle"></i>
</button>
<div id="menu-logo">
<img src="Final_Logo.png" width="210" height="214" alt="">
</div>
<div id="navbarToggleExternalContent">
<ul id="main-menu">
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Writing</a>
<a href="#">Events</a>
<a href="#">Speaking</a>
<a href="#">Music</a>
</ul>
<ul id="social-icons">
<li class="facebook"><a href="#"><i class="fab fa-facebook fa-2x"></i></a></li>
<li class="twitter"><a href="#"><i class="fab fa-twitter fa-2x"></i></a></li>
<li class="instagram"><a href="#"><i class="fab fa-instagram fa-2x"></i></a></li>
</ul>
</div>
</div>
</nav>
Ich habe versucht, diesen Javascript-Code zu verwenden, aber ohne Erfolg:
$('.menu-close').on('click', function(){
$('#menuToggle').toggleClass('active');
$('body').toggleClass('body-push-toright');
$('#theMenu').toggleClass('menu-open');
alert("Test");
});
javascript
html
css
bootstrap-4
responsive-design
Frank Doe
quelle
quelle
class
und unter Medienabfragewidth:600
Antworten:
Es sieht so aus, als ob dies hier beantwortet wurde: https://stackoverflow.com/a/36289507/378779 Fügen Sie grundsätzlich eine der
navbar-expand-*
Klassen zu Ihrer hinzu<nav>
, z.quelle
Sie können CSS Media Query verwenden, um Inhalte in verschiedenen Ansichtsfenstern / Geräten auszublenden / anzuzeigen.
quelle
Hier ist der Link, was Sie genau brauchen. Ich habe einen Stift für dich erstellt. Bitte schauen Sie in den Link unten.
https://codepen.io/pgurav/pen/abbQZJL
quelle
Ich habe ein Beispiel für Sie erstellt, basierend auf der bs4-Dokumentation zu externen Inhalten.
In diesem Beispiel wird der Code von oben anstatt von rechts ausgeblendet. Eigentlich bin ich in Urlaub und werde versuchen, das Beispiel so zu vervollständigen, dass es Ihren Bedürfnissen entspricht.
Zusätzliches JavaScript:
Ich habe auch eine Geige geschaffen Geige , um es in Aktion zu sehen, das innere Fenster in jsfiddle die Größe
quelle
Ihr aktueller Javascript-Code wird unabhängig vom Gerät immer ausgeführt. Sie benötigen eine Möglichkeit, um zu überprüfen, ob es sich bei dem Gerät um einen Computer oder ein Mobiltelefon handelt.
Eine Möglichkeit wäre, den Browser zu verwenden
UserAgent
:Sie können sich auch einfach auf die Breite des Fensters verlassen (kleine Desktop-Fenster werden jedoch wie die mobile Version behandelt):
quelle
Zunächst nur ein paar Punkte:
Sie sagten Seitenleiste, aber Ihr Markup sieht für mich nicht wirklich wie eine Seitenleiste aus, sondern wie ein ansprechendes Topnav. Ich werde versuchen, es so gut wie möglich zu verstehen, und ich werde auch eine funktionierende Seitenleiste demonstrieren, falls Sie das wirklich wollen.
Ihre Menüpunkte befinden sich in einer
<ul>
(ungeordneten Liste) ohne<li>
(Listenelemente). Der Bootsrap js / css benötigt wahrscheinlich das<li>
s, um richtig zu funktionieren. Technisch gesehen ist a<ul>
ohne any<li>
ein gültiges HTML, aber der einzige Inhalt, der in a zulässig ist,<ul>
sind<li>
s, sodass Anker (oder irgendetwas anderes) in a<ul>
in<li>
s enthalten sein müssen , um gültig zu sein.Ich bin mir nicht sicher, was genau Sie mit den sozialen Symbolen versuchen, also habe ich sie nur leicht angepasst, so dass es sinnvoll erscheint.
Ich habe
overflow-y: scroll;
das<html>
Element hinzugefügt , damit beim Öffnen des Menüs auf einem kleinen Bildschirm keine Verschiebung auftritt, wenn eine Bildlaufleiste hinzugefügt wird. Abhängig von Ihrem Website-Design und Inhaltslayout wird dies möglicherweise nicht benötigt.Beginnen wir also mit einem sehr einfachen Reaktionsmenü.
Grundlegendes Bootstrap-Reaktionsmenü
Code-Snippet anzeigen
Okay, das sieht okay aus, aber Sie hatten ein Bild im Menü. Also werde ich ein Bild in das Menü einfügen und ihm ein wenig CSS geben, um es zu stylen. Dann brauchen wir mit dem Bild ein wenig zusätzliches CSS, um Menüelemente gut zu positionieren:
Okay, aber Sie sagten, es sei eine Seitenleiste. Ich bin mit Bootstrap nicht so vertraut, aber ich stelle fest, dass weder Version 3 noch Version 4 standardmäßig ein Sidebar-Navi bieten. Mehrere Bootstrap - Sidebar - Tutorials finden sich hier . Ich habe einfach die grundlegendste Version aus den oben verlinkten Tutorials verwendet, um hier ein Beispiel zu erstellen.
Zusammenklappbare Seitenleiste
Code-Snippet anzeigen
quelle