2010-06-21 58 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