Ini bukan dropdown submenu, kategorinya adalah kelas li seperti pada gambar:
Dengan memilih kategori dari menu responsif (templatnya hanya satu halaman), saya ingin menyembunyikan nav collapse secara otomatis saat mengklik. Juga berjalan-jalan untuk digunakan sebagai navigasi, karena templat hanya memiliki satu halaman. Saya mencari solusi yang tidak mempengaruhi itu, berikut adalah kode menu HTML:
<!-- NAVBAR
================================================== -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Carousel Demo</a>
<div class="nav-collapse">
<ul class="nav" >
<li class="active"><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#contact">Contact</a></li>
<!-- dropdown -->
</ul>
<!-- /.nav -->
</div>
<!--/.nav-collapse -->
</div>
<!-- /.container -->
</div>
<!-- /.navbar-inner -->
</div>
<!-- /.navbar -->
jquery
html
twitter-bootstrap
Tim Vitor
sumber
sumber
Jawaban:
coba ini:
sumber
Saya hanya meniru 2 atribut dari
btn-navbar
(data-toggle="collapse" data-target=".nav-collapse.in"
) pada setiap tautan seperti ini:Di Bootstrap 4 Navbar ,
in
telah berubahshow
jadi sintaksnya adalah:data-toggle="collapse" data-target=".navbar-collapse.show"
sumber
data-toggle
dandata-target
ke <li> adalah solusi yang lebih bersih. Terima kasih..in
ke target data:data-toggle="collapse" data-target=".nav-collapse.in"
sumber
.navbar-toggler
. Bagaimanapun, kode super berfungsi, terima kasih!Lebih baik menggunakan metode collapse.js default ( V3 docs , V4 docs ):
sumber
.nav a
pemilih dengan yang ini:.nav a:not(.dropdown-toggle)
.nav a
saya harus menggunakan.navbar a
.navbar-collapse
dan bukan.nav-collapse
?.nav-collapse
digunakan dalam contoh kode pertanyaan.Bahkan lebih elegan tanpa menjilat kode duplikat, adalah dengan hanya menerapkan
data-toggle="collapse"
dandata-target=".nav-collapse"
atribut ke nav itu sendiri:Sangat bersih, tidak perlu JavaScript. Berfungsi bagus, asalkan
nav a
elemen Anda memiliki bantalan yang cukup untuk jari-jari yang gemuk, dan Anda tidak mencegah peristiwa klik yang meluape.stopPropagation()
saat pengguna mengekliknav a
item.sumber
data-target=".nav-collapse.in"
<div class="collapse navbar-collapse" data-toggle="collapse" data-target=".navbar-collapse">
Perbarui
untuk
Perubahan sederhana ini berhasil bagi saya.
Ref: https://github.com/twbs/bootstrap/issues/9013
sumber
data-target=".navbar-collapse.in"
seperti dengan standar bootstrap baru. The.in
kelas untuk mencegah animasi ketika pada desktopdiv.navbar-collapse
elemen saya sebagaidata-target
parameter.Navigasi harus ditutup kapan saja pengguna mengklik di mana saja pada tubuh - bukan hanya elemen navigasi. Menu Say terbuka, tetapi pengguna mengklik di badan halaman. Pengguna berharap untuk melihat menu tutup.
Anda juga harus memastikan tombol sakelar terlihat, jika tidak, lompatan terlihat di menu.
sumber
Diuji pada Bootstrap 3.3.6 - bekerja!
sumber
Coba ini> Bootstrap 3
Brilliant tepat apa yang saya cari, namun saya memiliki beberapa bentrokan dengan javascript dan modal bootstrap, ini memperbaikinya.
Semoga ini membantu.
sumber
Ini bekerja dengan baik untuk saya. Sama dengan jawaban yang diterima tetapi memperbaiki masalah yang terkait dengan tampilan desktop / tablet
sumber
sumber
beforeShow
acara tersebut.Saya pikir lebih baik menggunakan Bootstrap 3 default metode collapse.js menggunakan
.navbar-collapse
elemen collapsible yang ingin Anda sembunyikan seperti yang ditunjukkan di bawah ini.Solusi lain dapat menyebabkan masalah lain yang tidak diinginkan dengan cara elemen ditampilkan atau berfungsi di halaman web Anda. Oleh karena itu, walaupun beberapa solusi mungkin muncul untuk memperbaiki masalah awal Anda, mungkin sangat baik memperkenalkan yang lain, jadi pastikan Anda menjalankan pengujian menyeluruh terhadap situs Anda setelah perbaikan apa pun.
Untuk melihat kode ini dalam aksi:
Bersulang!
Tampilkan cuplikan kode
sumber
Pada setiap tautan dropdown masukkan data-toggle = "collapse" dan data-target = ". Nav-collapse" di mana nav-collapse adalah nama yang Anda berikan ke daftar dropdown.
Ini berfungsi dengan baik pada layar yang memiliki dropdown seperti layar seluler, tetapi pada desktop dan tablet itu menciptakan flickr. Ini karena kelas .collapsing diterapkan. Untuk menghapus flickr, saya membuat kueri media dan menyisipkan overflow yang disembunyikan ke kelas collapsing.
sumber
Menambahkan data-toggle = "collapse" data-target = ". Navbar-collapse.in" ke tag
<a>
bekerja untuk saya.sumber
Begini cara saya melakukannya. Jika ada cara yang lebih halus, tolong beri tahu saya.
Di dalam
<a>
tag tempat tautan untuk menu saya tambahkan kode ini:Ini mempertahankan animasi slide. Jadi dalam penggunaan penuh akan terlihat seperti ini:
sumber
// CATATAN Saya menambahkan "touchstart" untuk sentuhan mobile. touchstart / end tidak memiliki penundaan
sumber
Ini adalah solusi terbaik yang saya gunakan.
sumber
Bagi mereka yang telah memperhatikan desktop navbars flicker saat menggunakan solusi ini:
Solusi sederhana untuk masalah itu adalah dengan mereferensikan navbar yang runtuh hanya dengan memeriksa keberadaan 'in':
Ini menciutkan navbar saat klik saat navbar berada dalam mode seluler, tetapi akan menyisakan versi desktop. Ini menghindari kerlipan yang banyak orang saksikan terjadi pada versi desktop.
Selain itu, jika Anda memiliki navbar dengan menu dropdown Anda tidak akan dapat melihatnya karena navbar akan disembunyikan segera setelah Anda mengkliknya, jadi jika Anda memiliki menu dropdown (seperti saya lakukan!), Gunakan yang berikut:
Ini mencari keberadaan kelas tarik-turun di atas tautan yang diklik di DOM, jika ada, maka tautan itu bermaksud meluncurkan menu tarik-turun dan akibatnya menu tidak disembunyikan. Ketika Anda mengklik tautan di dalam menu dropdown, navbar akan bersembunyi dengan benar.
sumber
sumber
100% berfungsi: -
Tambahkan dalam HTML
Javascript
sumber
Ini menyembunyikan nav runtuh bukannya menganimasikannya tetapi konsep yang sama seperti jawaban di atas
JS:
HTML:
Saya lebih suka ini di situs halaman tunggal karena saya menggunakan localScroll.js yang sudah menjiwai.
sumber
Tampilan seluler: cara menyembunyikan navigasi beralih di bootstrap + dropdown + jquery + gulir dengan item navigasi yang menunjuk ke jangkar / id pada halaman yang sama , satu templat halaman
Masalah yang saya coba dengan salah satu solusi di atas adalah bahwa mereka hanya menciutkan item submenu, sedangkan menu navigasi tidak runtuh.
Jadi saya melakukan pemikiran saya .. dan apa yang bisa kita amati? Ya, setiap kali kita / para pengguna mengklik sebuah tautan scrollto, kami ingin halaman tersebut bergulir ke posisi itu dan pada saat yang sama, tutup menu untuk mengembalikan tampilan halaman.
Nah ... mengapa tidak menugaskan pekerjaan ini ke fungsi scrollto? Mudah :-)
Jadi dalam dua kode
dan
Saya baru saja menambahkan perintah yang sama di kedua fungsi
(pujian kepada salah satu kontributor di atas)
seperti ini (hal yang sama harus ditambahkan ke kedua gulungan)
jika Anda ingin melihatnya beraksi, cukup periksa recupero dati da NAS
sumber
Pengguna Bootstrap3 mencoba kode di bawah ini. Ini berhasil untuk saya.
sumber
Bootstrap menetapkan
.in
kelas pada elemen Ciutkan untuk memicu animasi - untuk membukanya. Jika Anda hanya menghapus.in
kelas, animasi tidak berjalan, tetapi akan menyembunyikan elemen - tidak persis apa yang Anda inginkan.Mungkin lebih cepat menjalankan
if
pernyataan untuk memeriksa apakah kelas bootstrap default.in
telah ditetapkan pada elemen.Jadi kode ini hanya mengatakan:
sumber
Tambahkan id lalu ke masing-masing
sumber
Solusi cepat lain untuk Bootstrap 3. * dapat berupa:
sumber
Saya memposting solusi yang bekerja dengan Aurelia di sini: https://stackoverflow.com/a/41465905/6466378
Masalahnya adalah Anda tidak bisa hanya menambahkan
data-toggle="collapse"
dandata-target="#navbar"
ke elemen Anda. Dan jQuery tidak bekerja dengan baik di lingkungan Aurelia atau Angular.Solusi terbaik bagi saya adalah membuat atribut khusus yang mendengarkan kueri media terkait dan menambahkan
data-toggle="collapse"
atribut jika diinginkan:<a href="#" ... collapse-toggle-if-less768 data-target="#navbar"> ...
Atribut khusus dengan Aurelia terlihat seperti ini:
sumber
Saya menggunakan Bootstrap 4, menggunakan fullPage.js dengan nav teratas yang tetap, dan mencoba semua yang tercantum di sini, dengan hasil yang beragam.
Mencoba yang terbaik, cara bersih:
Menu akan runtuh, tetapi tautan href tidak akan mengarah ke mana pun.
Mencoba cara lain yang logis:
Akan ada beberapa perilaku aneh karena peristiwa touchstart: tombol yang diklik akan berakhir bukan yang benar-benar saya klik, karenanya memutus tautan. Plus itu akan menambahkan kelas .show ke beberapa dropdown yang tidak terkait lainnya di nav saya, menyebabkan beberapa hal aneh.
Tidak ada yang berhasil.
Jadi, sebagai gantinya, saya punya ide bagus (sejauh ini) untuk melakukan itu:
Saya sudah memiliki beberapa hal dalam fungsi hashchange itu, dan saya hanya perlu menambahkan baris ini.
Ini benar-benar melakukan apa yang saya inginkan: mengosongkan menu ketika hash berubah (yaitu klik yang mengarah ke tempat lain) Itu bagus, karena sekarang saya dapat memiliki tautan di menu saya yang tidak akan runtuh.
Siapa tahu, mungkin ini akan membantu seseorang dalam situasi saya!
Dan terima kasih kepada semua orang yang telah berpartisipasi dalam utas itu, banyak info untuk dipelajari di sini.
sumber
Dalam kebanyakan kasus, Anda hanya ingin memanggil fungsi sakelar jika tombol sakelar terlihat ...
sumber
Menu yang saya check in dibuka dengan memeriksa kelas 'in' dan kemudian jalankan kodenya.
bekerja dengan sempurna.
sumber