2010-06-21 55 views
2

我在加載頁面時(我希望它在後臺加載)時隱藏Flash組件,然後在完全加載時顯示它。隱藏並顯示:加載頁面時出現的問題

爲此,我有以下的JavaScript代碼來隱藏它一旦DOM加載:

$(document).ready(function() 
{ 
    $("#test").hide(); 
}); 

此時,閃光燈是隱藏的。再後來,我打電話調用的方法:

$("#test").show(); 

但在這一點上,閃光燈都不會再出現。我也在Firebug的控制檯中嘗試過,但它不起作用。我試圖用div來做同樣的事情,但它不工作。

如果我在加載時沒有隱藏div/flash,但稍後隱藏並在Firebug的控制檯中顯示它時,它可以正常工作。

有沒有人請知道我爲什麼得到這種行爲?

編輯:

非常感謝你,

魯迪

+0

需要測試頁面或其他東西。問題可能出在你沒有向我們展示的代碼上。有些東西要嘗試:首先隱藏,因爲它不起作用。然後在控制檯中執行:$('#test')。length它響應什麼? – Mark 2010-06-21 22:57:57

+0

您是否使用框架來加載您的閃存?如果不可見,某些框架不會加載任何東西。 – Andrew 2010-06-21 23:05:06

回答

0

要隱藏Flash元素,仍然有其加載,可以放置它的可見區域之外,而不是隱藏它。使用CSS來執行此操作,以便在觸發onload事件之前該元素已被隱藏。然後,當您準備好顯示閃光元素時,只需刪除loading類。

CSS

#flash-container { position: absolute; top: ... } 
#flash-container.loading { top: -1000px; } 

HTML

<div id="flash-container" class="loading"> 
    <object ...></object> 
</div> 

的JavaScript

$("#flash-container").removeClass("loading"); 

而且,你#flash-container CSS定義的一部分,你需要定義定位爲當元素爲可見。

+0

這裏的缺點是,你不能使用動畫......上滑,下滑等。 – 2010-06-22 00:14:31

+0

這與手頭的問題無關。如果將flash元素的「display」設置爲「none」,然後返回「block」,則會導致元素在某些情況下被重新加載,從而無法進行動畫製作。 – 2010-06-22 00:18:53

+0

但你可以使用SWFObject Jquery插件來隱藏和顯示Flash,並且仍然有效。 – 2010-06-22 00:22:23