2011-03-08 56 views
0

即時通訊使用jquery ui選項卡。jquery ui標籤加載全部htm後呈現

有時,當我的頁面加載,顯示在頁面上的所有每個標籤的HTML,那麼它需要一點時間的選項卡顯示和HTML位於標籤內之前。從ui的角度來看,這個最初的閃爍是相當惱人的..有沒有辦法克服它?

回答

2

您正在等待HTML渲染,這就是爲什麼你使用$(document).ready()或者它的簡寫。

你可以做的是標籤下的部分(HTML),你應該把

<script>$('#tab').tab()</script> //或.tabs()CNT記得

那就做對飛,你要知道了jQuery核心文件應該放在頭部分:)

+0

btw我知道它的骯髒和不實用,但多數民衆贊成在我能想到的唯一辦法可以列表它最快的方式可能:) – Val 2011-03-08 14:24:12

0

一個不那麼好的方法是設置一個100%的高度和寬度覆蓋用z-index要隱藏頁面的一切,直到所有的UI渲染完成。

2

由於嵌入jQuery的正確的方法是利用當所有的頁面已完成加載的

$(document).ready(function(){ 
    ... 
} 

jQuery將被執行。這是100%的目標。您可以使用

一個竅門,就是添加一些JS,仍然使用jQuery但功能外 $(文件)。就緒(函數(){ ... }

// Class indicating that JS is enabled                                   
$('html').addClass('js'); 

然後,在你身邊不想閃爍的東西最接近的CSS類,並添加一些CSS

/** 
* For anything you want to hide on page load when JS is enabled, so 
* that you can use the JS to control visibility and avoid flicker.                                   
*/ 
html.js .myClass { 
    display: none; 
} 

然後,當然,你需要處理.myClass的知名度與一些JS,顯示它違背了我們在中定義的內容CSS規則。

這將盡可能快display: none閃爍的東西,你將無法看到它閃爍。

0

一種辦法是修改到次級選項卡(那些誰不出現第一)的Z-index屬性,並在回調把原來的值回來了。

1

有同樣的問題。
我聲明瞭標籤「display:none;」在我的CSS。
當jQuery.tab()激發它應該正確渲染。