2010-04-06 162 views
0

谷歌搜索後發現很多ie錯誤我仍然沒有找到我有問題的描述。IE瀏覽器在某些情況下顯示隱藏的div

最初的情況是一個標準的情況。我們有一個工具提示,它實際上是一個隱藏的div,將在鼠標懸停在給定位置時顯示。 div隱藏着display:none並且包含一個包含內容的表格。我們嘗試了不同的庫來顯示div(scriptaculous和jQuery Cluetip),但效果是一樣的。

問題: 只要內容適合我窗口的寬度,一切都很好。但是當我調整它的大小直到水平滾動條被激活時,當激活工具提示時,隱藏div的內容將顯示在頁面的末尾。

這真的很奇怪,因爲它只發生在這些地方。當涉及多個工具提示時,瀏覽器甚至可能會崩潰(並且在Vista下將整個系統與他聯繫起來duh)。

我知道解釋起來有點複雜,但我希望至少有人聽說過這個bug,並且可以指引我走向正確的方向。

+2

您可能需要發佈一些代碼。你不應該需要庫來顯示div,你可以用簡單的CSS來完成,所以我很懷疑。 – NibblyPig 2010-04-06 15:09:43

+0

HTML中的工具提示DIV在哪裏?在它的中間,還是在最後? – 2010-04-06 15:16:38

+0

問題*問題出現在哪裏?你說'當工具提示被激活時,隱藏div的內容將顯示在頁面的末尾。當工具提示被激活時,是不是顯示div *假設*? – Segfault 2010-04-06 15:18:32

回答

0

我做我的工具提示的方式是使用可見性隱藏和可見。一旦鼠標關閉,我將x和y設置爲0以將工具提示移出觀看空間。

這隻有在位置設置爲絕對時纔有效。

編輯:顯示它時,你是如何定位提示:

我改變「頂」和「左」的CSS值位於提示。

box.css( 「左e.pageX + 1);
box.css(」 頂部」,e.pageY + 1);

在哪裏 'E' 是我的事件變量從:

鼠標移動(函數(E){});

+0

你是如何在展示它時提示工具提示的?我認爲這是使用庫的一點,所以我們可以通過鼠標指針輕鬆定位它。 – user310148 2010-04-06 16:11:03

+0

我通過更改「top」和「left」的css值來定位工具提示。您可以通過使用在函數中調用的事件變量來檢索鼠標位置。 mousemove(function(e){ box.css(「left」,e.pageX + 5); box.css(「top」,e.pageY + 1); } – stan 2010-04-07 14:01:45

0

設置width CSS屬性爲 「自動」(在定義210)將導致<div>元素佔用分配給它的整個空間。如果<body>元素沒有應用width,則這可能導致頁面英里和英里寬。這經常會導致瀏覽器崩潰,具體取決於操作系統。最好的選擇是將其設置爲null

(這是基於對IE6編碼的實際經驗,可能不一定適用於IE7 +)。

要記住的另一件事是,大多數瀏覽器做所謂的「懶惰渲染」,這意味着如果一個元素隱藏在頁面上,它不會渲染它。它甚至不會承認它的存在是一個潛在的可見物體,直到它不被隱藏。這意味着不知道該對象將有多大,直到你揭示它爲止。這可能會導致問題,如果你想弄清楚有多大,一旦你看到它。基本上唯一的解決辦法是取消隱藏,閱讀它的大小,重新隱藏它,然後繼續。

+0

問題不在於無盡的頁面但只是div的內容顯示在它的末尾,當切換到另一個工具提示或div時,實際上瀏覽器可能會崩潰 div沒有任何寬度,但其中的表格設置爲100%。 – user310148 2010-04-06 16:13:45

相關問題