jQuery淡入网站/内容一旦加载?

时间:2011-11-10 07:54:25

标签: jquery html jquery-plugins load fade

是否有任何教程或插件可以在网站正确加载后将网站淡入视图,以限制任何震动等等,因此内容基本上会流畅地显示?

我认为如果它只是一个特定的区域会更容易,因为页面或页脚已经被缓存,从之前的页面...

例如,包含各种缩略图的投资组合页面,只有在准备就绪时才能顺利显示。

可以这样做吗?

感谢您的帮助:)

6 个答案:

答案 0 :(得分:27)

首先,一个侧面点:一般来说,网页设计师花费大量时间来尝试改善感知页面加载时间,尽可能快地显示内容。这是另一种方式,呈现一个空白页面,直到一切准备就绪,这可能并不理想。

但如果它适合你的情况:

由于所有可见内容都是body的后代,因此您可以加载body隐藏,然后将其淡入。对于没有JavaScript的用户(通常少于2%)包含回退非常重要至少according to Yahoo,但仍然)。所以沿着:

(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>

脚本部分的几个变体,取决于您希望淡入发生的时间:

等待“准备好”事件:

Live Copy

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

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

});

等待window#load事件:

Live Copy

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

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

})(jQuery);
在所有外部资源(包括所有图像)都已加载后,

window#load在页面加载过程的后期触发非常。但是你说你想要等到所有东西都装满了,所以这可能就是你想要做的。它肯定会使你的页面显得更慢......

答案 1 :(得分:16)

是的,用div(例如<div id="main-content">)封装你的内容,然后在你的css中输入:

div#main-content { display: none; }

然后使用此脚本。

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

答案 2 :(得分:4)

实现此目标的另一种方法是通过Animate.css项目。它纯粹的CSS所以没有必要依赖JS:

https://daneden.me/animate/

只需将'animated'和'fadeIn'类添加到您的父元素中,所有孩子都会淡入。

答案 3 :(得分:1)


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

其中container是包含整个内容的div的id。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

div#main-content { display: block; }

要使用或不使用Javascript,都可以使用

document.getElementById("#main-content").style.display = "none";

然后使用此脚本。

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