2013-05-21 27 views
0

我有一個加載JQuery UI對話框的網頁。在Firefox中加載頁面時,純文本在所有CSS和JavaScript運行之前都會顯示一秒。一旦加載完畢,文本就會正確顯示。有沒有辦法阻止在所有CSS/JavaScript運行之前顯示文本?我試圖打開和關閉可見性,但是這不能正常工作。在Firefox完全加載頁面之前,無風格文本閃爍

這似乎只發生在Firefox,而不是其他瀏覽器。

+0

你使用嵌入式的CSS和JS或外部鏈接?外部鏈接將有助於在客戶端瀏覽器上緩存樣式和js – Chief

+0

http://stackoverflow.com/a/9823468/888177 – Stefan

回答

0

有人喜歡稱之爲FOUC(Flash Of Unstyled Content)。如果您正在使用通過javascript嵌入的Google字體(resource),那麼它會向html標記添加一個類,以允許您在使用普通規則(如html.wf-loading #content{display:none})加載腳本時隱藏內容。

但是,根據我的經驗,這不是防彈的。我發現在過程中始終沒有實現FUOC的唯一方法是將字體轉換爲BASE64,並將其直接嵌入到CSS(Font Squirrel provide a great resource for doing this)中。這樣你的字體會在加載CSS之前等待顯示自己。

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>