OK, jadi yang saya butuhkan cukup mudah.
Saya telah mengatur navbar dengan beberapa menu dropdown di dalamnya (menggunakan class="dropdown-toggle" data-toggle="dropdown"
), dan berfungsi dengan baik.
Masalahnya itu berfungsi " onClick
", sementara aku lebih suka jika itu bekerja " onHover
".
Apakah ada cara bawaan untuk melakukan ini?
javascript
jquery
html
css
twitter-bootstrap
Dr.Kameleon
sumber
sumber
Jawaban:
Solusi termudah adalah dalam CSS. Tambahkan sesuatu seperti ...
Biola yang Bekerja
sumber
data-toggle
atribut untuk membuat item induk dapat diklik ... Hanya hati-hati terhadap kerusakan jaminan pada layar ponsel.Cara terbaik untuk melakukannya adalah dengan hanya memicu acara klik bootstraps dengan membawa. Dengan cara ini, itu harus tetap menyentuh perangkat ramah
sumber
Anda dapat menggunakan fungsi hover jQuery.
Anda hanya perlu menambahkan kelas
open
saat mouse masuk dan menghapus kelas saat mouse meninggalkan dropdown.Ini kode saya:
sumber
show
sebagai gantiopen
, dan juga menyertakandropdown-menu
:$('.dropdown').hover(function() { $(this).addClass('show'); $(this).find('.dropdown-menu').addClass('show');}, function() {$(this).removeClass('show'); $(this).find('.dropdown-menu').removeClass('show');});
(Maaf untuk pemformatan.)Cara mudah, menggunakan jQuery, adalah ini:
sumber
.first()
-$(this).find('.dropdown-menu').first().stop(true, true).delay(200).fadeIn(200);
...Untuk CSS, ini menjadi gila ketika Anda juga mengkliknya. Ini adalah kode yang saya gunakan, juga tidak mengubah apa pun untuk tampilan seluler.
sumber
Di Twitter Bootstrap tidak diterapkan tetapi Anda dapat menggunakan plugin ini
Pembaruan 1:
Pertanyaan yang sama di sini
sumber
Arahkan kursor ke item nav untuk melihat bahwa item itu diaktifkan saat di arahkan. http://cameronspear.com/demos/twitter-bootstrap-hover-dropdown/#
sumber
Jadi, Anda memiliki kode ini:
Biasanya ini berfungsi pada acara klik, dan Anda ingin itu berfungsi pada acara hover. Ini sangat sederhana, cukup gunakan kode javascript / jquery ini:
Ini bekerja dengan sangat baik dan inilah penjelasannya: kami memiliki tombol, dan menu. Ketika kita mengarahkan tombol kita menampilkan menu, dan ketika kita keluar dari tombol, kita menyembunyikan menu setelah 100 ms. Jika Anda bertanya-tanya mengapa saya menggunakannya, itu karena Anda perlu waktu untuk menarik kursor dari tombol di atas menu. Ketika Anda berada di menu, waktu diatur ulang dan Anda dapat tetap di sana sebanyak waktu yang Anda inginkan. Saat Anda keluar dari menu, kami akan menyembunyikan menu secara instan tanpa batas waktu.
Saya telah menggunakan kode ini di banyak proyek, jika Anda menemui masalah dalam menggunakannya, jangan ragu untuk bertanya kepada saya.
sumber
Inilah yang saya gunakan untuk membuatnya dropdown di hover dengan beberapa jQuery
sumber
Coba ini menggunakan fungsi hover dengan animasi fadein fadeout
sumber
Ini akan membantu Anda membuat kelas hover Anda sendiri untuk bootstrap:
CSS:
Margin ditetapkan untuk menghindari penutupan yang tidak diinginkan dan bersifat opsional.
HTML:
Jangan lupa untuk menghapus data atribut tombol -toggle = "dropdown" jika Anda ingin menghapus onclick terbuka, dan ini juga akan berfungsi ketika input ditambahkan dengan dropdown.
sumber
Ini hanya akan mengarahkan navbar ketika Anda tidak menggunakan perangkat seluler, karena saya menemukan bahwa mengarahkan navigasi tidak berfungsi dengan baik pada perangkat seluler:
sumber
Saya mencoba solusi lain, saya menggunakan bootstrap 3, tetapi menu dropdown terlalu cepat untuk dipindahkan
seharusnya Anda menambahkan class = "dropdown" ke li, saya menambahkan batas waktu
sumber
Diperbarui dengan plugin yang tepat
Saya telah menerbitkan plugin yang tepat untuk fungsionalitas dropdown hover, di mana Anda bahkan dapat menentukan apa yang terjadi ketika mengklik
dropdown-toggle
elemen:https://github.com/istvan-ujjmeszaros/bootstrap-dropdown-hover
Mengapa saya membuatnya, ketika sudah ada banyak solusi?
Saya memiliki masalah dengan semua solusi yang ada sebelumnya. CSS sederhana tidak menggunakan
.open
kelas pada.dropdown
, jadi tidak akan ada umpan balik pada elemen beralih dropdown ketika dropdown terlihat.Js yang mengganggu mengklik
.dropdown-toggle
, sehingga dropdown muncul di hover, kemudian menyembunyikannya ketika mengklik dropdown yang terbuka, dan memindahkan mouse akan memicu dropdown untuk muncul lagi. Beberapa solusi js adalah pengereman kompatibilitas iOS, beberapa plugin tidak bekerja pada browser desktop modern yang mendukung acara sentuh.Itu sebabnya saya membuat plugin Bootstrap Dropdown Hover yang mencegah semua masalah ini hanya dengan menggunakan API javascript Bootstrap standar, tanpa peretasan apa pun.
sumber
sumber
Memicu suatu
click
peristiwa denganhover
memiliki kesalahan kecil. Jikamouse-in
dan kemudian aclick
menciptakan efek sebaliknya. Iniopens
saatmouse-out
danclose
ketikamouse-in
. Solusi yang lebih baik:sumber
html
jquery
codepen
sumber
Solusi yang saya usulkan mendeteksi jika tidak menyentuh perangkat dan bahwa
navbar-toggle
(menu hamburger) tidak terlihat dan membuat item menu induk mengungkapkan submenu di hover dan mengikuti tautannya di klik .Juga menjadikan margin atas 0 karena kesenjangan antara navbar dan menu di beberapa browser tidak akan membiarkan Anda mengarahkan kursor ke subtitle
sumber
Bootstrap drop-down Bekerja pada hover, dan tetap dekat klik dengan menambahkan tampilan properti : blok; di css dan menghapus atribut-atribut ini data-toggle = "dropdown" role = "button" dari tag tombol
sumber