Bien, entonces lo que necesito es bastante sencillo.
He configurado una barra de navegación con algunos menús desplegables (usando class="dropdown-toggle" data-toggle="dropdown"
), y funciona bien.
La cosa es que funciona " onClick
", mientras que preferiría que funcionara " onHover
".
¿Hay alguna forma integrada de hacer esto?
javascript
jquery
html
css
twitter-bootstrap
Dr. Kameleon
fuente
fuente
Respuestas:
La solución más fácil sería en CSS. Agrega algo como ...
Violín de trabajo
fuente
data-toggle
atributo para que el elemento padre pueda hacer clic ... Solo tenga cuidado con el daño colateral en las pantallas de los dispositivos móviles.La mejor manera de hacerlo es activar un evento de clic de arranque con un desplazamiento. De esta manera, debe seguir siendo amigable con el dispositivo táctil
fuente
Puede usar la función de desplazamiento de jQuery.
Solo necesita agregar la clase
open
cuando el mouse ingresa y eliminar la clase cuando el mouse sale del menú desplegable.Aquí está mi código:
fuente
show
lugar deopen
, y también incluirdropdown-menu
:$('.dropdown').hover(function() { $(this).addClass('show'); $(this).find('.dropdown-menu').addClass('show');}, function() {$(this).removeClass('show'); $(this).find('.dropdown-menu').removeClass('show');});
(Perdón por el formato.)Una manera fácil, usando jQuery, es esta:
fuente
.first()
-$(this).find('.dropdown-menu').first().stop(true, true).delay(200).fadeIn(200);
...Para CSS se vuelve loco cuando también haces clic en él. Este es el código que estoy usando, tampoco cambia nada para la vista móvil.
fuente
En Twitter Bootstrap no está implementado pero puedes usar este plugin
Actualización 1:
Sames pregunta aquí
fuente
Desplácese sobre los elementos de navegación para ver que se activan al desplazarse. http://cameronspear.com/demos/twitter-bootstrap-hover-dropdown/#
fuente
Entonces tienes este código:
Normalmente funciona en eventos de clic, y desea que funcione en eventos de desplazamiento. Esto es muy simple, solo use este código javascript / jquery:
Esto funciona muy bien y aquí está la explicación: tenemos un botón y un menú. Cuando pasamos el botón, mostramos el menú, y cuando pasamos el mouse del botón, ocultamos el menú después de 100 ms. Si te preguntas por qué lo uso, es porque necesitas tiempo para arrastrar el cursor desde el botón sobre el menú. Cuando está en el menú, la hora se restablece y puede permanecer allí tantas veces como desee. Cuando salga del menú, ocultaremos el menú instantáneamente sin ningún tiempo de espera.
He usado este código en muchos proyectos, si encuentra algún problema al usarlo, no dude en hacerme preguntas.
fuente
Esto es lo que uso para que sea desplegable al pasar el mouse con un poco de jQuery
fuente
Intente esto usando la función de desplazamiento con animaciones fadein fadeout
fuente
Esto te ayudará a crear tu propia clase de vuelo estacionario para bootstrap:
CSS:
Los márgenes están configurados para evitar el cierre no deseado y son opcionales.
HTML:
No olvide eliminar el atributo de botón data-toggle = "dropdown" si desea eliminar onclick open, y esto también funcionará cuando la entrada se agregue con desplegable.
fuente
Esto solo pasa la barra de navegación cuando no estás en un dispositivo móvil, porque encuentro que pasar la navegación no funciona bien en los dispositivos móviles:
fuente
Intento con otras soluciones, estoy usando Bootstrap 3, pero el menú desplegable se cierra demasiado rápido para pasarlo
supuse que agregas class = "dropdown" a li, agregué un tiempo de espera
fuente
Actualizado con un complemento adecuado
He publicado un complemento adecuado para la funcionalidad del menú desplegable, en el que incluso puedes definir qué sucede al hacer clic en el
dropdown-toggle
elemento:https://github.com/istvan-ujjmeszaros/bootstrap-dropdown-hover
¿Por qué lo hice, cuando ya hay muchas soluciones?
Tuve problemas con todas las soluciones existentes anteriormente. Los CSS simples no están utilizando la
.open
clase en el.dropdown
, por lo que no habrá comentarios sobre el elemento de alternancia desplegable cuando el menú desplegable esté visible.Los js están interfiriendo con hacer clic en
.dropdown-toggle
, por lo que el menú desplegable aparece al pasar el mouse, luego lo oculta al hacer clic en un menú desplegable abierto, y al mover el mouse, el menú desplegable se activará nuevamente. Algunas de las soluciones js están frenando la compatibilidad con iOS, algunos complementos no funcionan en los navegadores de escritorio modernos que admiten los eventos táctiles.Es por eso que hice el complemento Bootstrap Dropdown Hover que evita todos estos problemas al usar solo la API estándar de Bootstrap javascript, sin ningún tipo de pirateo.
fuente
fuente
La activación de un
click
evento con ahover
tiene un pequeño error. Simouse-in
y luego aclick
crea un efecto viceversa. Esopens
cuandomouse-out
yclose
cuandomouse-in
. Una mejor solución:fuente
html
jquery
codepen
fuente
La solución que propongo detecta si no es un dispositivo táctil y que el
navbar-toggle
(menú de hamburguesas) no es visible y hace que el elemento del menú principal revele el submenú al pasar el mouse y sigue su enlace al hacer clic .También hace que el margen sea superior a 0 porque la brecha entre la barra de navegación y el menú en algunos navegadores no le permitirá desplazarse a los subelementos
fuente
Menú desplegable Bootstrap Trabaje al pasar el mouse y manténgase cerca al hacer clic agregando la pantalla de propiedades : bloque; en css y eliminando estos atributos data-toggle = "dropdown" role = "button" de la etiqueta del botón
fuente