Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止在Javascript代码执行之前出现html文本_Javascript_Jquery_Html_Css_Load - Fatal编程技术网

如何防止在Javascript代码执行之前出现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

说我的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 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>