Foros del Web » Programando para Internet » Jquery »

hacer aparecer div tras X segundos con jQuery

Estas en el tema de hacer aparecer div tras X segundos con jQuery en el foro de Jquery en Foros del Web. Buenos días, Pues resulta que hace bastante tiempo, que por razones de estudios y tiempo tuve que abandonar mi hobby de hacer webs y me ...
  #1 (permalink)  
Antiguo 23/11/2011, 07:51
 
Fecha de Ingreso: octubre-2001
Ubicación: Las Palmas - Islas Canarias
Mensajes: 229
Antigüedad: 23 años, 1 mes
Puntos: 0
hacer aparecer div tras X segundos con jQuery

Buenos días,

Pues resulta que hace bastante tiempo, que por razones de estudios y tiempo tuve que abandonar mi hobby de hacer webs y me estoy reincorporando ahora, e intentando ponerme al día en bastantes cosillas, que en 4 años han cambiado muchas cosas.

Bueno, al grano. Resulta que tengo una web, y en la portada, muy sencilla, tengo una pequeña animación flash que durará más o menos 2 o 3 segundos. Justo debajo del flash, tengo un div, con una imagen y un menú en texto. Pues lo que intento hacer, es que, automáticamente al cargar la página, este div que tiene como id "contenedorbajo", que aparezca poco a poco con un fadeIn lento. Estoy intentándolo hacer con jQuery, pero no logro hacer que funcione.

Al principio en el documento invoco en head al script:
Código:
<script src=”jquery.js”></script>
Y ya luego en el cuerpo de la página, invoco al fadeIn de jQuery:
Código:
<script>
$(document).ready(function(){
$("contenedorbajo").fadeIn("slow", function (){
});
</script>
La historia es que no logro hacer que funcione, la web aparece completa y no hay efecto de desvanecimiento del div.
Otra manera de hacerlo había pensado en solapar otro div flotante encima del que quiero ocultar, y hacerle a este un efecto de fadeOut, pero el problema es que de fondo hay una imagen, con lo que ver un cuadrado blanco que desaparece no quedaría bien.

Gracias de antemano por la ayuda!!
Eduardo
  #2 (permalink)  
Antiguo 23/11/2011, 08:43
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años
Puntos: 56
Respuesta: hacer aparecer div tras X segundos con jQuery

#contenedorbajo
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #3 (permalink)  
Antiguo 23/11/2011, 08:50
 
Fecha de Ingreso: octubre-2001
Ubicación: Las Palmas - Islas Canarias
Mensajes: 229
Antigüedad: 23 años, 1 mes
Puntos: 0
Respuesta: hacer aparecer div tras X segundos con jQuery

Gracias por la pronta respuesta, pero nada.

He probado a hacer en la hoaj de estilos que todos los div estén en "display:none", pero el caso es que no sale nada. Estoy empezando a creer que quizás el evento (document).ready no sea el adecuado, pero no tengo claro cuál otro debería poner en tal caso.
  #4 (permalink)  
Antiguo 23/11/2011, 09:03
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años
Puntos: 16
Respuesta: hacer aparecer div tras X segundos con jQuery

creo que puedes poner algo asi:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.    $("#contenedorbajo").delay(3000).fadeIn("slow");
  3. });

lo del delay es para que tarde 3 segundos en hacerse el fadeIn, la capa #contenedorbajo debe estar con estilo display:none

espero te sirva
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #5 (permalink)  
Antiguo 23/11/2011, 09:31
 
Fecha de Ingreso: octubre-2001
Ubicación: Las Palmas - Islas Canarias
Mensajes: 229
Antigüedad: 23 años, 1 mes
Puntos: 0
Respuesta: hacer aparecer div tras X segundos con jQuery

Gracias por la aportación, pero nada, no hay manera, en el momento que pongo el display:none, el flash que está justo encima del div del menú baja ocupando su lugar. Estoy repasando todo lo que tengo, pero no se, estoy pensando que quizás se deba a las posiciones de los div, que efectivamente haga el fade, pero que lo haga fuera de la vista de pantalla?
  #6 (permalink)  
Antiguo 23/11/2011, 09:42
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años
Puntos: 16
Respuesta: hacer aparecer div tras X segundos con jQuery

pues checalo sin el flash encima y si el div hace el fade pues ya seria cosa de que jueges con los z-index de los divs

supongo que el flash esta en un div dentro del otro o como esta la estructura? realmente entiendo muy poco de lo que quieres hacer
  #7 (permalink)  
Antiguo 23/11/2011, 10:26
 
Fecha de Ingreso: octubre-2001
Ubicación: Las Palmas - Islas Canarias
Mensajes: 229
Antigüedad: 23 años, 1 mes
Puntos: 0
Respuesta: hacer aparecer div tras X segundos con jQuery

Vale, voy a poner la estructura de la web simplificada y los estilos que le estoy dando, así seguro me pueden entender mejor:


Código HTML:
Ver original
  1. <title>titulo</title>
  2. <link href="estilos.css" rel="stylesheet" type="text/css" />
  3. <script src=”jquery.js”></script>
  4. </head>
  5.  
  6. <img id="bg" src="fondoprueba2.jpg">
  7.   <div class="contenedor">
  8.     <div class="centrado">
  9.       <div class="alto">
  10.       <img src="escudo.gif" class="logo" id="escudo">
  11.       </div>
  12.       <div class="bajo">
  13.             <span class="logo" id="clogo">
  14.             <object classid="...">ESTE ES EL FLASH</object>
  15.             </span>
  16.             <div class="menu" id="contenedorbajo"><img src="drocha.gif" class="menu"><p class="menu">AQUÍ EL MENU CON LOS ENLACES EN TEXTO</div>
  17.       </div>
  18.     </div>
  19.     </div>
  20.         <script>
  21.         $(document).ready(function(){
  22.         $("#contenedorbajo").delay(3000).fadeIn("slow"){
  23.         });
  24.         </script>
  25. </body>

Y ahora los estilos:

Código CSS:
Ver original
  1. body {
  2.     background: #fff;
  3.     height:100%;
  4.     text-align:center;
  5. }
  6.  
  7.  
  8. #bg {
  9.     position: fixed;
  10.     z-index: -1;
  11.     top: 0;
  12.     left: 0;
  13.     width: 100%;
  14. }
  15.  
  16. .contenedor {
  17.     width: 99%;
  18.     height: 98%;
  19.     position: fixed;
  20.     display: table;
  21.     border:2px dashed #fff;
  22.     margin: 0 auto;
  23. }
  24.    
  25. .centrado {
  26.     position: absolute;
  27.     top: 50%;
  28.     display: table-cell;
  29.     vertical-align: middle;
  30.     text-align: center;
  31.     position: static;
  32.     }
  33.    
  34.  
  35. .alto {
  36.     width: 100%;
  37.     position:absolute;
  38.     top: 7%;
  39.     }
  40.        
  41. .bajo {
  42.     width:100%;
  43.     position:absolute;
  44.     bottom:10%;
  45.     }
  46.    
  47. .logo {
  48.     text-align:center;
  49.     margin-top:40px;
  50.     }
  51.  
  52. .menu {
  53.     text-align:center;
  54.     font-family:Arial, Helvetica, sans-serif;
  55.     font-size:8px;
  56.     letter-spacing:2px;
  57.     word-spacing:20px;
  58.     text-transform:uppercase;
  59.     margin-top:15px;
  60.     position:relative;
  61.     display:none
  62.     }

Lo que yo quiero tener oculto es el div que está dentro de "bajo" y que se llama "contenedorbajo". Lo que ocurre al ponerle display:hidden es que su lugar lo ocupa el flash, y no sé quizás si se está superponiendo. De todos modos, he hecho eso, de probar sin el flash e igual, no ocurre nada.

Gracias!

Última edición por eduhernan; 23/11/2011 a las 10:43
  #8 (permalink)  
Antiguo 23/11/2011, 16:17
 
Fecha de Ingreso: noviembre-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 2
Respuesta: hacer aparecer div tras X segundos con jQuery

Tienes un error en la linea del jquery en lugar de "{" es ";"

Intenta con esto:
HTML:

Código:
<html>
<head>
    <title>titulo</title>
    <link href="estilos.css" rel="stylesheet" type="text/css" />
    <script src="jquery.js" type="text/javascript"></script>
</head>
<body>
    <img id="bg" src="fondoprueba2.jpg">
    <div class="contenedor">
        <div class="centrado">
            <div class="alto">
                <img src="escudo.gif" class="logo" id="escudo">
            </div>
            <div class="bajo">
                <span class="logo" id="clogo">
                    <object classid="...">
                        ESTE ES EL FLASH</object>
                </span>
                <div id="contenedorbajo">
                    <img src="drocha.gif" class="menu"><p class="menu">
                    AQUÍ EL MENU CON LOS ENLACES EN TEXTO</div>
            </div>
        </div>
    </div>

    <script type="text/javascript">
        $(document).ready(function() {
            $("#contenedorbajo").delay(3000).fadeIn('slow');
        });
    </script>
</body>
</html>

Y este es el CSS:
Código:
body
{
    background: #fff;
    height: 100%;
    text-align: center;
}
#bg
{
    position: fixed;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
}
.contenedor
{
    width: 99%;
    height: 98%;
    position: fixed;
    display: table;
    border: 2px dashed #fff;
    margin: 0 auto;
}
.centrado
{
    position: absolute;
    top: 50%;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    position: static;
}
.alto
{
    width: 100%;
    position: absolute;
    top: 7%;
}
.bajo
{
    width: 100%;
    position: absolute;
    bottom: 10%;
}
.logo
{
    text-align: center;
    margin-top: 40px;
}
#contenedorbajo
{
    text-align: center;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8px;
    letter-spacing: 2px;
    word-spacing: 20px;
    text-transform: uppercase;
    margin-top: 15px;
    position: relative;
    display: none;
}
Cambie el estilo menu por el nombre del div.

Espero que te sirva
Saludos!
  #9 (permalink)  
Antiguo 23/11/2011, 19:09
 
Fecha de Ingreso: octubre-2001
Ubicación: Las Palmas - Islas Canarias
Mensajes: 229
Antigüedad: 23 años, 1 mes
Puntos: 0
Respuesta: hacer aparecer div tras X segundos con jQuery

¡¡Ha funcionado, perfecto!! Muchas gracias!! Entonces, es mejor referencias sólo los div por el id y no por la class, según he entendido. De nuevo muchas gracias!

Etiquetas: desvanecer, efecto, fadein, fadeout
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 06:00.