是否有任何教程或插件可以在网站正确加载后将网站淡入视图,以限制任何震动等等,因此内容基本上会流畅地显示?
我认为如果它只是一个特定的区域会更容易,因为页面或页脚已经被缓存,从之前的页面...
例如,包含各种缩略图的投资组合页面,只有在准备就绪时才能顺利显示。
可以这样做吗?
感谢您的帮助:)
答案 0 :(得分:27)
首先,一个侧面点:一般来说,网页设计师花费大量时间来尝试改善感知页面加载时间,尽可能快地显示内容。这是另一种方式,呈现一个空白页面,直到一切准备就绪,这可能并不理想。
但如果它适合你的情况:
由于所有可见内容都是body
的后代,因此您可以加载body
隐藏,然后将其淡入。对于没有JavaScript的用户(通常少于2%)包含回退非常重要至少according to Yahoo,但仍然)。所以沿着:
<!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>
脚本部分的几个变体,取决于您希望淡入发生的时间:
等待“准备好”事件:
// This version waits until jQuery's "ready" event
jQuery(function($) {
$(document.body).fadeIn(1000);
});
等待window#load
事件:
// 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:
只需将'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();
});