Saya mengalami masalah nyata ketika mencoba untuk mendapatkan sidebar / konten navigasi saya (menggunakan Bootstrap) untuk ditampilkan (diperluas) secara default di desktop dan ditutup secara default di ponsel dan ikon hanya ditampilkan di ponsel. Sepertinya saya tidak bisa melakukan ini.
<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>
Saya sudah mencoba menggunakan kode javascript ini, tetapi tidak berhasil:
$('.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
sumber
sumber
class
dan gaya sederhana di bawah permintaan mediawidth:600
Jawaban:
Sepertinya ini telah dijawab di sini: https://stackoverflow.com/a/36289507/378779 Pada dasarnya, tambahkan salah satu
navbar-expand-*
kelas ke Anda<nav>
, misalnya:sumber
Anda dapat menggunakan CSS Media Query untuk menyembunyikan / menampilkan konten di berbagai viewport / perangkat.
sumber
Inilah tautan yang Anda butuhkan dengan tepat. Saya telah membuat pena untuk Anda. Silakan lihat tautan di bawah ini.
https://codepen.io/pgurav/pen/abbQZJL
sumber
Saya telah membuat contoh untuk Anda, berdasarkan dokumentasi bs4 tentang konten eksternal.
Dalam contoh ini kode tersebut runtuh dari atas - bukan dari kanan. Sebenarnya saya sedang cuti dan akan mencoba untuk melengkapi contoh agar sesuai dengan kebutuhan Anda.
JavaScript tambahan:
Saya juga telah membuat biola biola Untuk melihatnya dalam aksi, silakan mengubah ukuran jendela bagian dalam jsfiddle
sumber
Kode Javascript Anda saat ini akan selalu berjalan, apa pun perangkatnya. Yang Anda butuhkan adalah cara untuk memeriksa apakah perangkat itu komputer atau ponsel.
Salah satu caranya adalah dengan menggunakan browser
UserAgent
:Atau, Anda bisa mengandalkan lebar jendela (tetapi jendela desktop kecil akan diperlakukan seperti versi seluler):
sumber
Pertama hanya beberapa poin:
Anda mengatakan sidebar, tetapi markup Anda tidak benar-benar terlihat seperti sidebar bagi saya, sepertinya topnav responsif. Saya akan mencoba untuk memahaminya sebaik mungkin, dan saya akan menunjukkan sidebar yang berfungsi juga, jika itu yang Anda inginkan.
Item menu Anda ada dalam
<ul>
(daftar tidak berurutan) tanpa<li>
(daftar item). Bootsrap js / css mungkin perlu<li>
s agar berfungsi dengan benar. Secara teknis a<ul>
tanpa ada<li>
html yang valid, tetapi satu-satunya konten yang diizinkan dalam<ul>
adalah<li>
s sehingga jangkar (atau apa pun) di dalam a<ul>
harus dimuat dalam<li>
s agar valid.Saya tidak yakin apa yang sebenarnya Anda coba lakukan dengan ikon sosial jadi saya hanya menyesuaikan sedikit dengan cara yang tampaknya masuk akal.
Saya menambahkan
overflow-y: scroll;
pada<html>
elemen sehingga ketika Anda membuka menu di layar kecil itu tidak akan menyebabkan pergeseran jika bilah gulir ditambahkan. Mungkin tidak diperlukan tergantung pada desain situs Anda dan tata letak konten.Jadi mari kita mulai dengan menu responsif yang sangat mendasar.
Menu Responsif Bootstrap Dasar
Tampilkan cuplikan kode
Oke, itu terlihat oke, tetapi Anda memiliki gambar di menu. Jadi saya akan meletakkan gambar di menu dan memberikan sedikit css untuk menatanya. Kemudian dengan gambar, kita perlu sedikit CSS ekstra untuk memposisikan elemen menu dengan baik:
Oke, tapi kamu bilang itu sidebar. Saya tidak begitu terbiasa dengan bootstrap, tetapi saya tahu bahwa baik v3 maupun v4 tidak menyediakan sidebar nav secara default. Beberapa tutorial sidebar bootstrap dapat ditemukan di sini . Saya hanya menggunakan versi paling dasar dari tutorial yang ditautkan di atas untuk membuat contoh di sini.
Sidebar yang Dapat Dilipat
Tampilkan cuplikan kode
sumber