Mam poważne problemy z uzyskaniem zawartości paska bocznego / nawigacji (za pomocą Bootstrap), aby domyślnie wyświetlać (być rozwijana) na komputerze i domyślnie zamykać na urządzeniach mobilnych, a ikona wyświetla się tylko na urządzeniach mobilnych. Nie mogę tego zrobić.
<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>
Próbowałem użyć tego kodu javascript, ale bezskutecznie:
$('.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
źródło
źródło
class
iwidth:600
Odpowiedzi:
Wygląda na to, że odpowiedziano tutaj: https://stackoverflow.com/a/36289507/378779 Zasadniczo dodaj jedną z
navbar-expand-*
klas do swojej<nav>
, np .:źródło
Możesz użyć CSS Media Query, aby ukryć / pokazać zawartość w innej rzutni / urządzeniu.
źródło
Oto link, którego potrzebujesz axactly. Stworzyłem dla ciebie pióro. Proszę spojrzeć na link poniżej.
https://codepen.io/pgurav/pen/abbQZJL
źródło
Stworzyłem dla ciebie przykład na podstawie dokumentacji bs4 dotyczącej treści zewnętrznych.
W tym przykładzie kod zwija się od góry - zamiast od prawej. Właściwie jestem na urlopie i postaram się uzupełnić przykład, aby dopasować go do twoich potrzeb.
Dodatkowy JavaScript:
Stworzyłem również skrzypce. Aby zobaczyć, jak działa, zmień rozmiar wewnętrznego okna w jsfiddle
źródło
Twój aktualny kod JavaScript zawsze będzie działał, niezależnie od urządzenia. Potrzebujesz sposobu, aby sprawdzić, czy urządzenie jest komputerem czy telefonem komórkowym.
Jednym ze sposobów byłoby użycie przeglądarki
UserAgent
:Lub możesz po prostu polegać na szerokości okna (ale małe okna pulpitu będą traktowane jak wersja mobilna):
źródło
Najpierw tylko kilka punktów:
Powiedziałeś, że pasek boczny, ale twój znacznik tak naprawdę nie wygląda jak pasek boczny, wygląda na responsywny topnav. Postaram się to jak najlepiej zrozumieć, a także pokażę działający pasek boczny, na wypadek, gdybyś tego naprawdę chciał.
Twoje pozycje menu znajdują się na
<ul>
(liście nieuporządkowanej) bez żadnych<li>
(elementów listy). Bootsrap js / css prawdopodobnie potrzebuje<li>
s, aby działać poprawnie. Technicznie rzecz biorąc,<ul>
bez żadnego<li>
jest poprawny HTML, ale jedyna dozwolona zawartość<ul>
to<li>
s, więc kotwice (lub cokolwiek innego) wewnątrz<ul>
muszą być zawarte w<li>
s, aby były ważne.Nie jestem pewien, co dokładnie próbujesz zrobić z ikonami społecznościowymi, więc dostosowałem je nieco w sposób, który wydaje się rozsądny.
Dodałem
overflow-y: scroll;
na<html>
elemencie, tak aby po otwarciu menu na małym ekranie nie spowoduje przesuwanie się pasek przewijania zostanie dodana. Może nie być potrzebny w zależności od projektu witryny i układu treści.Zacznijmy więc od bardzo podstawowego responsywnego menu.
Podstawowe menu responsywne Bootstrap
Pokaż fragment kodu
Okej, to wygląda dobrze, ale masz zdjęcie w menu. Więc wstawię obraz do menu i dam mu trochę css, aby go stylizować. Następnie z obrazem potrzebujemy trochę dodatkowego CSS, aby ładnie pozycjonować elementy menu:
Okej, ale powiedziałeś, że to pasek boczny. Nie jestem zaznajomiony z bootstrap, ale rozumiem, że ani v3, ani v4 domyślnie nie zapewniają nawigacji na pasku bocznym. Kilka samouczków paska startowego można znaleźć tutaj . Po prostu użyłem najbardziej podstawowej wersji z samouczków połączonych powyżej, aby stworzyć tutaj przykład.
Składany pasek boczny
Pokaż fragment kodu
źródło