jQuery如何隐藏DIV,它们在页面加载时显示为分秒

我已经制作了一个非常快速的jquery幻灯片,我正在使用它来隐藏DIV,它们不应该显示,直到轮到他们了:

$(document).ready(function() { //Hide All Div's Apart From First $('div#gall2').hide(); $('div#gall3').hide(); $('div#gall4').hide(); 

但是在加载页面时,您可以在隐藏之前看到DIV的gall2 gall3和gall4瞬间。

可以在我的CSS里面添加:

 #gall2, #gall3, #gall4{ display:none;} 

这样可以解决它们瞬间出现的问题,只想知道它是否可以接受

谢谢。

在CSS中禁用很好,但是没有JS的用户将永远不会看到它们。

要仅为具有JS的用户禁用,请标记正文和相应的CSS:

   

CSS:

 .js #gall2, .js #gall3, .js #gall4 { display: none; } 

作为orip答案的替代方案,如果您不喜欢在添加脚本,则可以执行以下操作:

       

您将避免以这种方式闪烁,因为您 DOM准备好之前向HTML添加了类名。

是的,在你的CSS中做它肯定是可以接受的

其他受访者是正确的。 使用JS只能看到东西并不是一个好习惯。 我想我只是在技术上思考:用这种方式改变CSS可以解决问题。

总是试着想象一下JS关闭的用户会看到什么。 如果您使用CSS解决方案,也不会为它们显示非第一个DIV,但如果您以编程方式更改幻灯片,它们将只会看到第一个,显然。 最好给他们一个“No JS”选项。 然后,如果您确定用户已启用JS,则可以使用CSS隐藏div并使用JS显示它们。

它们正在显示,因为默认情况下可能会显示div。 由于在页面上触发“就绪”事件可能需要几秒钟,因此在页面上的所有内容都已加载并准备就绪之前,不会触发.hide()方法调用。

如果我没记错,.hide()方法只会将元素的“display”属性设置为“none”。 因此,默认情况下,通过CSS设置要隐藏的div允许它们始终被隐藏,并且您可以获得没有JS的用户的额外奖励。