2011-01-11 32 views
0

有沒有其他人遇到過下面描述的場景?jQuery + CSS + IE問題:頁面加載時隱藏元素會短暫出現

例如起見,這裏是一個非常基本的描述:

#menuHolder包含菜單項(#itemA#itemB#itemC,... #itemZ

在CSS中,我已經#menuHolder's溢出設置爲隱藏。

使用jQuery,我將#menuHolder設置爲minHeight爲0,然後在特定元素被隱藏時將其展開爲maxHeight 300。

在FF,Safari或Chrome瀏覽器沒有問題......但這裏是在IE中會發生什麼:

對於一個短暫的瞬間,#itemA#itemB#itemC,... #itemZ出現在彼此的頂部,頁面在IE中加載。然後他們消失並像平常一樣行事。

就好像溢出:hidden或minHeight在頁面加載之前不被識別。

任何想法?

由於 乙

+0

你在哪裏設置minHeight? – Michael 2011-01-11 21:42:50

回答

0

即(至少達到7,如果我記錯)不知道關於最小高度

的解決方案是使用一些CSS那樣

min-height:100px; 
height:100px; /* for ie7 */ 
height:auto !important; /* for all others */ 

它將事件更好的目標ie6/7與一些有條件的評論技巧,如http://html5boilerplate.com

0

也許你應該有contai顯示器:在CSS中沒有,使用jQuery預先加載現在不可見的容器中使用的任何圖像,然後在jquery中使用適當的高度而不是最小和最大 - 當鼠標懸停發生時。

0

在某些情況下,像這樣將工作:

在頁面加載過程中不能出現的元素,把它藏在標記:

<ul id='my_element' style='visibility:hidden'> 

然後,你申請一個jQuery之前效果來顯示它(即,slideDown()),刪除屬性並重新隱藏它:

$me = $('#my_element'); // cache it to improve performance 
$('#some_other_element').click(function() { 
    $me('style','visibility:visible').hide(); 
    $me.slideDown(800); 
}); 

有一天IE的支持不需要這樣的滑稽動作。在此之前,希望這有助於。

0

對於一些舊的jQuery數據表(例如1.6.x)仍然沒有完美的解決方案,似乎所有隱藏的柱子都會簡要地顯示出來:是使用表數據中的bVisibility:false屬性還是set列動態可視性。 fnSetColumnVis(1,false);

例如

jquery datatables hide column

有誰知道這已經在數據表的較新版本解決了嗎?