Foros del Web » Programando para Internet » Javascript »

Cambiar funcion de Menu de CSS a JS o JQuery

Estas en el tema de Cambiar funcion de Menu de CSS a JS o JQuery en el foro de Javascript en Foros del Web. Hola amigos, necesito que me ayuden en esto. Tengo un menu en css que funciona a la perfeccion, funciona de la siguiente manera, esta una ...
  #1 (permalink)  
Antiguo 07/05/2014, 07:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Cambiar funcion de Menu de CSS a JS o JQuery

Hola amigos, necesito que me ayuden en esto.

Tengo un menu en css que funciona a la perfeccion, funciona de la siguiente manera, esta una imagen de una lupa siempre visible, cuando posiciono el cursor sobre la imagen aparecen 2 opciones, buscador de documentos y buscador de fotos, cuando paso por encima de alguna de estas dos opciones aparece otro submenu.

Como lo dije anteriormente funciona a la perfeccion, lo que quiero es que las opciones no aparezcan hasta que el usuario de clic sobre las opciones, me podrian ayudar de favor??

el css es este:

Código PHP:
.nav{
    
font-familyArialsans-serif;
    list-
style:none;
    
font-size:11px;
    
margin:0;
padding:0;
}

.
nav li {
float:left;
list-
style:none;
height:25px;
}

.
nav li a {
font-familyArialHelveticasans-serif;
background-color#e6d6ba;
color:#741e07;
display:block;
padding:0px 5px;
text-decoration:none;
}

.
nav li .flecha{
font-size9px;
padding-left10px;
displaynone;
}

.
nav li a:not(:last-child) .flecha {
displayinline;
}

.
nav li a:hover {
background-color#e6d6ba;
color:#876830;
text-decoration:none;
}

.
nav li {
position:relative;
}

.
nav li ul {
font-familyArialHelveticasans-serif;    
display:none;
position:absolute;
min-width:200px;
list-
style:none;
margin:0;
padding:0;
left:-145px;
}

.
nav li:hover ul {
color:#876830;
display:block;
background-color:#f4eee4;
}

.
nav li ul li ul {
left:-286px;
top:0;

y el codigo del menu es este:

Código PHP:
<div id="buscarmas">
  <
ul class="nav" style="z-index:100; position:absolute;">
    <
li><a href="#"><img src="imagenes/lupamas.gif" width="20" height="20" border="0" /></a>
      <
ul>
        <
li style="padding:10px 0px 10px 0px;"><a href="#" style="padding-top:10px; padding-bottom:10px;">Busqueda avanzada Fotografía</a>
          <
ul>
            <
li>Opcion de Fotografias</li>
          </
ul>
        </
li>
        <
li style="margin:0px 0px 10px 0px;"><a href="#"  style="padding-top:10px; padding-bottom:10px;">Busqueda avanzada Documentos</a>
          <
ul>
            <
li>Opcion de documentos</li>
          </
ul>
        </
li>
      </
ul>
    </
li>
  </
ul>
</
div
  #2 (permalink)  
Antiguo 07/05/2014, 08:02
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: cambiar funcion de un menu

Para eso tendrías que usar JavaScript, no CSS. Con CSS podrías hacerlo, técnicamente, pero de forma práctica no sirve de nada y romperías con toda semántica.
  #3 (permalink)  
Antiguo 07/05/2014, 08:05
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: cambiar funcion de un menu

ok, ya me lo imaginaba pero pense que alomejor podria hacerse con css, muchas gracias lo pondre en el tema correcto
  #4 (permalink)  
Antiguo 07/05/2014, 08:06
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: cambiar funcion de un menu

Cita:
Iniciado por andoencombi Ver Mensaje
ok, ya me lo imaginaba pero pense que alomejor podria hacerse con css, muchas gracias lo pondre en el tema correcto
Te lo muevo a ese foro mejor.
  #5 (permalink)  
Antiguo 07/05/2014, 14:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar funcion de Menu de CSS a JS o JQuery

Supongo que la línea que deseas trasladar a JavaScript es esta:

Código CSS:
Ver original
  1. .nav li:hover > ul {
  2.     color: #876830;
  3.     display: block;
  4.     background-color: #f4eee4;
  5. }

Si en lugar de mostrar el <ul> con el evento hover (que en JavaScript nativo sería mouseover), quieres hacerlo al darle un clic, simplemente tienes que aplicarle el evento click.

Código Javascript:
Ver original
  1. Array.prototype.forEach(document.querySelectorAll(".nav li"), function (li){
  2.     li.addEventListener("click", function (){
  3.         var ul = this.getElementsByTagName("ul")[0];
  4.  
  5.         //A partir de aquí, aplicas los mismos estilos de la hoja de estilos
  6.         ul.style.color = "#876830";
  7.         ul.style.display = "block";
  8.         ul.style.backgroundColor = "#f4eee4";
  9.     }, false);
  10. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: background, color, css, funcion, hover, imagenes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:46.