J'ai de la difficulté à obtenir que mon contenu de navigation / barre latérale (à l'aide de Bootstrap) s'affiche (soit étendu) par défaut sur le bureau et fermé par défaut sur mobile et que l'icône ne s'affiche que sur mobile. Je n'arrive pas à faire fonctionner cela.
<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>
J'ai essayé d'utiliser ce code javascript, mais en vain:
$('.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
la source
la source
class
et modifiez-le sous la requête des médiaswidth:600
Réponses:
Il semble que cela ait été répondu ici: https://stackoverflow.com/a/36289507/378779 Fondamentalement, ajoutez l'une des
navbar-expand-*
classes à votre<nav>
, par exemple:la source
Vous pouvez utiliser CSS Media Query pour masquer / afficher le contenu dans différentes fenêtres / appareils.
la source
Voici le lien dont vous avez besoin axactly. J'ai créé un stylo pour vous. Veuillez regarder le lien ci-dessous.
https://codepen.io/pgurav/pen/abbQZJL
la source
J'ai créé un exemple pour vous, basé sur la documentation bs4 concernant le contenu externe.
Dans cet exemple, le code s'effondre par le haut - au lieu de la droite. En fait, je suis en congé et je vais essayer de compléter l'exemple pour répondre à vos besoins.
JavaScript supplémentaire:
J'ai également créé un violon violon Pour le voir en action, veuillez redimensionner la fenêtre intérieure dans jsfiddle
la source
Votre code Javascript actuel fonctionnera toujours, quel que soit l'appareil. Vous avez besoin d'un moyen de vérifier si l'appareil est un ordinateur ou un téléphone mobile.
Une façon serait d'utiliser le navigateur
UserAgent
:Ou, vous pouvez simplement compter sur la largeur de la fenêtre (mais les petites fenêtres de bureau seront traitées comme la version mobile):
la source
Tout d'abord quelques points:
Vous avez dit la barre latérale, mais votre balisage ne ressemble pas vraiment à une barre latérale pour moi, il ressemble à un topnav réactif. J'essaierai de le comprendre du mieux que je peux, et je montrerai également une barre latérale fonctionnelle, au cas où c'est ce que vous voulez vraiment.
Vos éléments de menu sont dans une
<ul>
(liste non ordonnée) sans aucun<li>
(éléments de liste). Le bootsrap js / css a probablement besoin du<li>
s pour fonctionner correctement. Techniquement, un<ul>
sans aucun<li>
est un html valide, mais le seul contenu autorisé dans a<ul>
est<li>
s, donc les ancres (ou toute autre chose) à l'intérieur de a<ul>
doivent être contenues dans<li>
s pour être valides.Je ne sais pas exactement ce que vous essayez de faire avec les icônes sociales, je les ai donc légèrement ajustées d'une manière qui semble raisonnable.
J'ai ajouté
overflow-y: scroll;
l'<html>
élément afin que lorsque vous ouvrez le menu sur un petit écran, il ne provoque pas de décalage si une barre de défilement est ajoutée. Peut ne pas être nécessaire selon la conception de votre site et la disposition du contenu.Commençons donc avec un menu réactif très basique.
Menu réactif Bootstrap de base
Afficher l'extrait de code
D'accord, ça a l'air bien, mais vous aviez une image dans le menu. Je vais donc mettre une image dans le menu et lui donner un peu de CSS pour la styliser. Ensuite, avec l'image, nous aurons besoin d'un peu de CSS supplémentaire pour bien positionner les éléments de menu:
D'accord, mais vous avez dit que c'était une barre latérale. Je ne connais pas très bien le bootstrap, mais je suppose que ni la v3 ni la v4 ne fournissent une navigation dans la barre latérale par défaut. Vous trouverez ici plusieurs didacticiels de la barre latérale d'amorçage . J'ai simplement utilisé la version la plus basique des tutoriels liés ci-dessus pour créer un exemple ici.
Barre latérale pliable
Afficher l'extrait de code
la source