0

我有一个页面,在所有页面元素变得可访问之前,它必须加载 3 个 javascript 文件(相当大)。如果单击其中一个链接,则加载停止,整个页面将无法正确加载脚本。

我通过使用叠加层遮盖页面来制作解决方案,该叠加层在所有页面加载之前使页面变黑。所以在我的页面顶部我放了

$(".black-overlay").show();

这是一个 div,用 9999 的 z-index 屏蔽我的整个页面。然后在页面加载后,我把

$(function() { $(".black-overlay").hide(); });

从我读到的来源与文档就绪功能相同,因此在页面加载后覆盖消失。

我的问题是,这只有时有效。一种情况是覆盖消失但链接仍然断开(意味着脚本尚未加载)。另一种情况是有时覆盖不会显示,如果:我移动到另一个页面,然后回到主页,在主页上覆盖必须再次显示,因为脚本必须再次加载。但有时,它工作得很好。

这个问题有更清洁的解决方案吗?

[编辑] 如果与网站的互联网连接非常慢,则会发生这种情况。

4

1 回答 1

3

我会将 body 默认隐藏,这意味着:<body style="display:none;"> 在文档加载时,使其可见(您甚至可以淡入淡出,这总是很有趣):

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

把它放在你的代码中最新的,它会(希望)总是有效的。

于 2013-08-21T10:10:10.800 回答