在Firefox中完全加载页面之前,无样式文本会闪烁

时间:2013-05-21 20:19:47

标签: javascript css firefox dom fouc

我有一个加载在JQuery UI对话框内的网页。当页面在Firefox中加载时,纯文本会在所有css和javascript运行之前显示一秒钟。一旦加载完毕,文本就会正确显示。有没有办法阻止文本显示,直到所有的CSS / JavaScript运行?我试过打开和关闭可见性,但这不能正常工作。

这似乎只发生在Firefox中,而不是在其他浏览器中。

2 个答案:

答案 0 :(得分:0)

有些人喜欢称之为FOUC(Flash Of Unstyled Content)。如果您使用通过javascript(resource)嵌入的Google字体,那么它会在html标记中添加一个类,允许您在使用html.wf-loading #content{display:none}等常规规则加载脚本时隐藏内容。

然而,根据我的经验,这不是防弹的。我发现在没有FUOC的过程中,唯一的方法是将字体转换为BASE64并将其直接嵌入到CSS(Font Squirrel provide a great resource for doing this)中。通过这种方式,您的字体将在CSS加载之前等待,然后再显示自己。

答案 1 :(得分:0)

创建一个隐藏元素的类。将该类添加到最初要隐藏的元素中。运行要执行的javascript后删除该类。以下内容可以帮助您。

.js-needed 
{
    display: none;
}
//Add this line after you've run the code you want executed
$(".js-needed").each(function() { $(this).removeClass(".js-needed"); } );

<div class="js-needed">Stuff to hide initially</div>