如何防止在Javascript代码执行之前出现html文本
说我的html是这个如何防止在Javascript代码执行之前出现html文本,javascript,jquery,html,css,load,Javascript,Jquery,Html,Css,Load,说我的html是这个 <div class='screen'> <p>*A lot of text here*</p> </div> <div class='screen'> <p>*More text and some images here*</p> </div> <div class='screen'> <p>*Even more text a
<div class='screen'>
<p>*A lot of text here*</p>
</div>
<div class='screen'>
<p>*More text and some images here*</p>
</div>
<div class='screen'>
<p>*Even more text and an image here*</p>
</div>
现在,当我打开这个页面时,有时它会工作(它会立即隐藏文本,因此它是一个空白页面),而其他时候,文本会显示一秒钟,然后文本会被隐藏。为什么它没有100%的时间立刻隐藏文本?如果我这样做,它会在100%的时间内工作吗
<script type='text/javascript'>
$(document).ready(function() {
hide();
});
</script>
$(文档).ready(函数(){
隐藏();
});
?创建一个包装器div并给它一个
显示:无代码>。需要时,使用show()
CSS:
HTML:
或者,如果您只关心.screen
,请将其CSS更改为display:none
,将javascript更改为show()
,而不是hide()
.屏幕{
利润率:10px;
显示:无;
}
show();
函数show(){
$('.screen').show();
}
创建一个包装器div并给它一个显示:无代码>。需要时,使用show()
CSS:
HTML:
或者,如果您只关心.screen
,请将其CSS更改为display:none
,将javascript更改为show()
,而不是hide()
.屏幕{
利润率:10px;
显示:无;
}
show();
函数show(){
$('.screen').show();
}
最简单的解决方案是用css隐藏它们:.screen{display:none;}
@JasonP对,但是有没有一种方法可以用JS来实现呢?只是一个旁注:在$(.screen.hide()中,.screen
周围缺少引号
为什么要用javascript编写?@A.Wolff因为这只是代码的一小部分,实际的代码非常庞大,不仅仅是在文本出现之前隐藏文本,还有很多其他JS代码(我没有编写,我只是试图解决这个小问题)。。无论如何,它为什么不马上隐藏文本呢?为什么它只在某些时候起作用?最简单的解决方法是用css隐藏它们:.screen{display:none;}
@JasonP对,但是有没有办法用JS来做呢?只是一个旁注:你在$(.screen.hide()中缺少.screen
的引号
为什么要用javascript编写?@A.Wolff因为这只是代码的一小部分,实际的代码非常庞大,不仅仅是在文本出现之前隐藏文本,还有很多其他JS代码(我没有编写,我只是试图解决这个小问题)。。无论如何,它为什么不马上隐藏文本呢?为什么它只在某些时候起作用呢?嗯,有没有一种方法可以在不增加任何额外课程的情况下起作用呢?为什么要藏起来;这个函数一开始只工作几次?我编辑了答案。如果您不能修改HTML(或只是不想修改),请将显示:隐藏放在屏幕中。您看到的不一致行为是因为有时HTML在javascript有机会运行之前完成加载,有时javascript在HTML完全加载之前运行。如果你运气不好,js可能会在加载之前运行。screen
甚至会被加载,所以元素永远不会被隐藏。好的,谢谢。。但是,天哪,即使我做了$(document).ready(function(){hide();});它仍然不能百分之百地工作?会的.ready()
确保在运行回调函数之前已完全加载文档。但这意味着您可以保证在隐藏元素之前看到.screens
元素。如果你想确保元素永远不会出现,你必须用CSS隐藏它,因为浏览器在试图显示文档之前会完全加载CSS文件。嗯,有没有一种不添加任何附加类的方法?为什么要藏起来;这个函数一开始只工作几次?我编辑了答案。如果您不能修改HTML(或只是不想修改),请将显示:隐藏放在屏幕中。您看到的不一致行为是因为有时HTML在javascript有机会运行之前完成加载,有时javascript在HTML完全加载之前运行。如果你运气不好,js可能会在加载之前运行。screen
甚至会被加载,所以元素永远不会被隐藏。好的,谢谢。。但是,天哪,即使我做了$(document).ready(function(){hide();});它仍然不能百分之百地工作?会的.ready()
确保在运行回调函数之前已完全加载文档。但这意味着您可以保证在隐藏元素之前看到.screens
元素。如果你想确保元素永远不会出现,你必须用CSS隐藏它,因为浏览器在试图显示文档之前会完全加载CSS文件。
function hide() {
$('.screen').hide();
}
<script type='text/javascript'>
$(document).ready(function() {
hide();
});
</script>
.wrapper{ display:none;}
<div class="wrapper>YOUR CONTENT</div>
$(document).ready(function(){
$(".wrapper").show();
});
<style>
.screens {
margin: 10px;
display:none;
}
</style>
<script type='text/javascript'>
show();
function show() {
$('.screen').show();
}
</script>