2011-11-10 13 views
8

¿Hay algún tutorial o complemento para desvanecer un sitio a la vista una vez que está cargado correctamente, para limitar cualquier discordancia, etc., por lo que el contenido aparece sin problemas básicamente?jQuery Fundido en el sitio/contenido una vez que está cargado?

supongo que sería más fácil si era sólo un área específica, como un encabezado o pie ya se almacena en caché, de las páginas anteriores ...

Por ejemplo, una página de la cartera con varias miniaturas, sólo aparecen sin problemas cuando esté listo.

se puede hacer esto?

Gracias por cualquier ayuda :)

Respuesta

16

Sí, envuelva su contenido con un div (por ejemplo <div id="main-content">) y en su css poner esto:

div#main-content { display: none; } 

A continuación, utilizar este script.

$(document).ready(function() { 
    $('#main-content').fadeIn(); 
}); 
+1

¿Existe una alternativa para esto en caso de que alguien no tenga Javascript habilitado? – optimus203

1

jQuery(document).ready(function(){ 
jQuery("#container").fadeIn(); 
}); 
 

donde envase es el id del div que contiene la totalidad de su contenido.

26

En primer lugar, un punto de vista: en general, los diseñadores web pasan mucho tiempo tratando de mejorar el tiempo percibido de carga de la página, logrando que se muestren lo más rápido posible. Esto va de la otra manera, presentando una página en blanco hasta que todo esté listo, lo que puede no ser ideal.

Pero si es apropiado para su situación:.

Ya que todo lo visible será un descendiente de body, que puede mostrarse body ocultos y luego se desvanecen en Sería importante incluir una reserva para los usuarios sin JavaScript (típicamente menos del 2% al menos according to Yahoo, pero aún así). Así que a lo largo de las líneas de:

(Live Copy)

<!DOCTYPE html> 
<html> 
<head> 
<title>Example</title> 
<!-- This next would probably be in your main CSS file, but shown 
    inline here just for purposes of the example 
--> 
<style type="text/css"> 
body { 
    /* Hide it for nifty fade-in effect */ 
    display: none; 
} 
</style> 
<!-- Fallback for non-JavaScript people --> 
<noscript> 
<style type="text/css"> 
body { 
    /* Re-displays it by overriding the above */ 
    display: block; 
} 
</style> 
</noscript> 
</head> 
<body> 
...content... 
<script src="jquery.js"></script> 
<script> 
// This version runs the function *immediately* 
(function($) { 

    $(document.body).fadeIn(1000); 

})(jQuery); 
</script> 
</body> 
</html> 

Un par de variaciones por parte de la escritura de que, dependiendo de si desea que el fundido de entrada que se produzca:

Esperar "listo" evento:

Live Copy

// This version waits until jQuery's "ready" event 
jQuery(function($) { 

    $(document.body).fadeIn(1000); 

}); 

Wa que para el caso window#load:

Live Copy

// This version waits until the window#load event 
(function($) { 

    $(window).load(function() { 
    $(document.body).fadeIn(1000); 
    }); 

})(jQuery); 

window#load incendios muy tarde en el proceso de carga de la página, después de que todos los recursos externos (incluyendo todas las imágenes) se han cargado. Pero dijiste que querías esperar hasta que todo estuviera cargado, así que eso podría ser lo que quieres hacer. Definitivamente hará que su página parezca más lenta ...

+0

Bueno ... hay muy pocos que piensan en el retroceso. +1 para la sugerencia de Nice –

+0

Es cierto. Pero aún así pondría body {display: none; } en el archivo CSS ya que trato de evitar estilos incrustados como ese tanto como sea posible. –

+0

@sushilbharwani: Sí. Normalmente es <= 2% de los visitantes (al menos, [ese es el número de Yahoo]) (http://developer.yahoo.com/blogs/ydn/posts/2010/10/how-many-users-have-javascript-disabled/)), pero aún así ... –

4

Otra forma de lograr esto es a través del proyecto Animate.css.Su puro CSS lo que no hay necesidad de confiar en JS:.

https://daneden.me/animate/

Basta con añadir el y la clase 'animada' 'fadeIn' a su elemento padre y todos los niños se desvanecerá en

1
$(document).ready(function() { 
    $('body').hide().fadeIn('fast'); 
}); 
Cuestiones relacionadas