jquery,隐藏内容直到加载

我目前正在使用此脚本淡化页面转换:

$(document).ready(function() { $(window).bind("unload", function() {}); $("body").css("display", "none"); $("body").hide(); $("body").fadeIn(2000); $('a.fade1, a.fade2, a.fade3, a.fade4').click(function(event) { event.preventDefault(); linkLocation = this.href; $("body").fadeOut(700, redirectPage); }); function redirectPage() { window.location = linkLocation; } });​ 

当内容在缓存中变为alred时,这就像一个魅力,但是当一个图像需要加载时,它会暂时出现然后被隐藏和淡入

所以我需要的是一种方法来隐藏内容,直到它完全加载,只有在它之后让它消失

希望有人可以帮助我,提前谢谢

默认情况下使用CSS隐藏元素,然后在您喜欢时显示它。

CSS

 body { display: none; } 

jQuery的

 $(window).load(function() { // When the page has loaded $("body").fadeIn(2000); }); 

当load和所有子元素已完全加载时,load事件将发送到元素。

请参阅load事件 。

您也可以考虑用单个类替换您的“fadeX”类,例如“淡入淡出”

为什么不使用… CSS的所有初始CSS?

       

然后你的js只需要担心调用fadeIn() 。 这种方式当浏览器呈现标签时,它已经知道要隐藏它,所以在你fadeIn()之前它根本不会显示。

我实际上不会使用CSS开始,这就是原因。 如果由于某种原因JS无法在页面上加载,它也将无法实际显示您的页面内容。 我会在脚本中保留所有内容并写入DOM,因此如果失败,则不会发生任何事情。

   

每张图片的CSS:visibility:hidden;

jQuery.ready:visibility:visible; (或使用淡化或任何你喜欢的)。 为什么visibility而不是’显示’? 当项目开始加载时, display将在页面上产生大量“跳跃”和“故障”。

此外,您可以尝试使用jQuery的加载方法而不是ready