2014-01-08 72 views
2

我正在製作一個網站,當用戶點擊一個按鈕時,應該會出現一個元素。Firefox不規則元素的可見性

我這樣做實現這一目標:

element.style.display="block"; //to show it. 

和:

element.style.display="none"; //to hide it. 

的問題是,在Firefox中的元素,有時會出現部分其他元素之下,他們已成爲「可見的」後。當我將鼠標指針移動到該區域時,它們會重新出現。有時候,這個新出現的元素正確地高於其他元素,但有時不是這樣,當它正確顯示並出現缺陷時,它看起來非常隨機。我認爲這與丟失重排或重新繪製DOM有關。我試圖改變其他風格的元素,希望它會強制DOM的重繪/重排,但無濟於事。

這個錯誤看似隨機出現,這使得處理起來非常困難。

如何阻止這種可見性問題的發生?

編輯: 顯然,將一個透明元素放置在利害關係人之上可以改善問題。現在,錯誤有時會在發生的第二秒內自動修復。

+2

顯示一些jsfiddle的例子。 – TMS

+0

什麼版本的Firefox,以及什麼操作系統?你嘗試了什麼其他的Web瀏覽器?當你顯示/隱藏元素時,你是否希望*迴流?或者是絕對定位你正在尋找的東西?你有沒有嘗試過jQuery('$(element).show()')? –

+0

操作系統是LUbuntu 13.04,瀏覽器是Firefox 26.我已經在Chrome,Chromium和Opera上測試過它,但問題似乎並不存在。是的,它就像瀏覽器只是忘記重畫元素的一部分,所以如果我可以強制迴流,那麼這可能很好地解決它。我真的很想在這個任務中不包含jquery,因爲這將是模塊所做的唯一事情。我不確定我是否理解,或者是絕對定位你正在尋找的東西。 –

回答

2

解決問題的方法是在onload事件之後定義導致不穩定可見性的div。