Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/07/2015, 21:15
Avatar de fede5426
fede5426
 
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 10 años
Puntos: 208
Respuesta: Dejar elemento:hover activo

Antes que nada, está mal estructurado el menú.. el orden es ul > li > a, y si te fijas en algunos lo tenes asi ul > a > li
Código HTML:
Ver original
  1. <nav>
  2.   <ul>
  3.     <li><a href="#">Item</a></li>
  4.     <li><a href="#">Item</a></li>
  5.     <li><a href="#">Item</a></li>
  6.     <li><a href="#">Item</a></li>
  7.   </ul>
  8. </nav>

Ahora, tu problema está en que el hover está hecho en el enlace y no en el item de lista.

A ver si me puedo explicar, tenes un hover en el enlace.. hasta ahí todo perfecto, pasas el mouse y funciona.
Tu submenu está dentro del <li>, pero no dentro del enlace, por lo que si el cursor lo posicionas sobre el submenu, quitas el hover del elemento <a>.. en cambio si el hover estuviera aplicado al item de lista, al posicionar el cursor sobre el submenu, seguís estando sobre el item de lista y así se mantiene el hover.

Creo que se entiende, espero que te sirva.

Saludos

Edito:

Agrego 2 ejemplos para que lo veas funcionando..

Esto es lo que tenés vos:

http://codepen.io/fede5426/pen/rVJEep

Y así debería funcionar:

http://codepen.io/fede5426/pen/qdxzNJ

La desventaja es que el enlace no funcionaría clickeando en cualquier parte del elemento resaltado sino que solamente funciona clickeando el texto.

Otra forma que podés usar es con javascript indicar que al hacer hover en el submenu, el elemento <a> tome una clase .activo por ejemplo, y al quitar el mouse que se quite la clase..

Código CSS:
Ver original
  1. .activo{
  2.     background-color:#02b1f4;
  3.     color:#fff;
  4. }

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.    
  3.     $(".submenu-paquetes").hover(
  4.        
  5.         function(){
  6.             $(".paquetes").addClass("activo");
  7.         },
  8.        
  9.         function(){
  10.             $(".paquetes").removeClass("activo");  
  11.         }
  12.         );
  13.  
  14. });

Funcionando: http://codepen.io/fede5426/pen/BNYgLo

Otra forma no se me ocurre

Saludos!

Última edición por fede5426; 03/07/2015 a las 21:45