elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Menú desplegable HTML + CSS + JQuery (ayuda)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Menú desplegable HTML + CSS + JQuery (ayuda)  (Leído 8,971 veces)
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Menú desplegable HTML + CSS + JQuery (ayuda)
« Respuesta #10 en: 24 Enero 2012, 21:29 pm »

Hola, eso es porque le indicas a jQuery que las oculte cuando la pagina ha sido cargada

Código
  1. $(document).ready(function() {

Lo mas sencillo seria añadir una linea en el css que indique que deberia estar oculto (display:none). Pero con eso te metes en un problema, con usuarios que no tienen javascript activado (no veran nada, ni podran hacer el despliegue).

Prueba poniendo
Código
  1. $('.menu ul ul').css({display:"none"});
antes de document.ready.

PD: Quedaria así:
Código
  1.            $('.menu ul ul').css({display:"none"});
  2.            $(document).ready(function() {
  3.  
  4.                $('.menu li').hover(function(){
  5.                    $(this).find('> ul').stop(true, true).slideDown('slow');
  6.                }, function(){
  7.                    $(this).find('> ul').stop(true, true).slideUp('slow');
  8.                });
  9.            });
  10.        </script>

Saludos


En línea

SanMagic

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Menú desplegable HTML + CSS + JQuery (ayuda)
« Respuesta #11 en: 25 Enero 2012, 00:58 am »

Ok, creo q eso no funcionó muy bien, el menú sale bien encima de las imagenes pero ya no se oculta y además se despliega todo así:



y aunq la página termine de cargar el menú igual se queda así, teniedno el
Código
  1. $('.menu ul ul').css({display:"none"});
dentro del
Código
  1. $(document).ready(function() {
solo aparece el problema mientras se carga la página, una vez cargada queda bien

Alguna otra sugerencia??
Gracias de antemano drvy | BSM por toda la ayuda q me has brindado =D


« Última modificación: 25 Enero 2012, 01:02 am por SanMagic » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Menú desplegable HTML + CSS + JQuery (ayuda)
« Respuesta #12 en: 25 Enero 2012, 03:05 am »

Hola,

Fallo técnico :xD
Teóricamente, no puedes cambiar el css de un elemento que todavía no existe, Por tanto, ya se tendría que haber cargado antes de cambiarle el css.

3 Soluciones.

1. (Recomendado)  Añadir un nuevo style mediante javascript. Así evitamos el problema de que los visitantes  que no tengan javascript no puedan ver el menú.

2.Poner al final de menú un script que oculte los submenus.

3. Manejarlo desde el css. El problema aquí es que cuando un visitante sin javascript visite tu pagina, no podrá desplegar el menú. De por si el visitante no tiene javascript, el menú aparecerá desplegado entero.


1. > Para añadir, un nuevo estilo en jquery haces lo siguiente.
Código
  1. $("<style type='text/css'></style>").appendTo("head");

Entonces tu código javascript quedaría de la siguiente forma.
Código
  1. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
  2. <script>
  3. $("<style type='text/css'>.menu ul ul{display:none;}</style>").appendTo("head");
  4. $(document).ready(function() {
  5. $('.menu li').hover(function(){
  6. $(this).find('> ul').stop(true, true).slideDown('slow');
  7. }, function(){
  8. $(this).find('> ul').stop(true, true).slideUp('slow');
  9. });
  10. });
  11. </script>


2. > Con añadir una linea de js al final del menú (donde termina el div menú) bastara. Aunque puede que tarde algo en reaccionar y se siga viendo todo despegado. Pero seria un mínimo de tiempo (mili segundos como mucho 1 segundo).

Código
  1. <div class="menu">
  2.   <!-- Menu entero -->
  3. </div>
  4. <script>$('.menu ul ul').css('display','none');</script>
  5. <div class="clear"></div>


3. > Añadir la siguiente linea en el css.
Código
  1. .menu ul ul {display:none;}

Tu css quedaría así:
Código
  1. <style>
  2. .menu ul {list-style: none; padding: 0;}
  3. .menu a {display: block;width: 150px;height: 20px; background: red; color: white;text-decoration: none;text-align: center;}
  4. .menu a:hover {background: green;}
  5. .menu li li a {background: blue;}  
  6. .main {float:left;}
  7. .clear {clear:both;}
  8. .menu ul ul {display:none;}
  9. </style>


Salio largo el post  :xD

Saludos
En línea

SanMagic

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Menú desplegable HTML + CSS + JQuery (ayuda)
« Respuesta #13 en: 26 Enero 2012, 05:35 am »

Eres grande drvy | BSM!!! muchísimas gracias =) este... si tengo duda en algo más vendré de nuevo =P (espero no te moleste)
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con menu desplegable
Diseño Gráfico
z3u2 2 2,178 Último mensaje 15 Noviembre 2005, 04:51 am
por z3u2
ayuda con check box en jquery
PHP
landerzx 0 2,114 Último mensaje 15 Diciembre 2012, 16:20 pm
por landerzx
Ayuda con menú Desplegable!
Desarrollo Web
ZedGe 1 1,922 Último mensaje 23 Mayo 2013, 15:04 pm
por Zeros1001
[Ayuda] Item activo del menu (jquery)
Desarrollo Web
x7uk 1 2,813 Último mensaje 18 Agosto 2013, 14:41 pm
por #!drvy
Menu desplegable con css y html
Desarrollo Web
WIитX 2 2,554 Último mensaje 14 Noviembre 2015, 18:08 pm
por WIитX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines