Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
Jquery\PHP隐藏页面呈现,直到一切就绪_Jquery_Ajax_Rendering - Fatal编程技术网

Jquery\PHP隐藏页面呈现,直到一切就绪

Jquery\PHP隐藏页面呈现,直到一切就绪,jquery,ajax,rendering,Jquery,Ajax,Rendering,我有一个包含4列的页面,每个列都由jQueryAjax调用。每个都是手风琴 我想把所有的东西都隐藏在一个完整的页面加载屏幕后面,直到所有的东西都被画出来,尤其是手风琴的功能都完成了,这样页面就不会显得一团糟 我试着加上 $('body').css('display', 'none'); 在电话之前然后 $('body').css('display', 'block'); 但它什么也没做 代码: 在屏幕上显示加载程序以隐藏其他内容。创建一个变量,在ajax之前用0初始化它。在每个ajax成功函

我有一个包含4列的页面,每个列都由jQueryAjax调用。每个都是手风琴

我想把所有的东西都隐藏在一个完整的页面加载屏幕后面,直到所有的东西都被画出来,尤其是手风琴的功能都完成了,这样页面就不会显得一团糟

我试着加上

$('body').css('display', 'none');
在电话之前然后

$('body').css('display', 'block');
但它什么也没做

代码:


在屏幕上显示加载程序以隐藏其他内容。创建一个变量,在ajax之前用0初始化它。在每个ajax成功函数中,递增相同的变量


在ajax之后,编写一个setInterval函数,并在该函数中检查变量是否等于4。如果是,则仅删除或隐藏加载程序。

您可以在页面顶部放置一个全屏div,并在加载所有内容时将其删除

CSS:

HTML:

<div id="full-loader">
    <h1>Loading ...</h1>
</div>

如果在头部加载jQuery并编写$'preload'。hide;在预加载div之后,其他答案就可以了,但是在我看来,如果在页面底部包含jQuery,那么显示预加载div的尝试是无用的,因为DOM已经加载了

但如果您在页面底部的结束body标记之前加载jquery,那么我认为您最好这样做:

CSS:

HTML:


在上面的代码中,将预加载放在body之后作为第一个子项,然后在使用原始javascript之后,我们将其显示改为block-考虑到您将在页面底部加载jquery,它在这个阶段还没有加载,因此如果您使用jquery,它将无法工作,因此为什么要使用原始JS-,当您到达网页底部时,您可以使用.hide将触发显示变回无,或者如Heru Luin所述,您可以使用.remove将其删除。当然,您仍然可以使用原始javascript来做同样的事情。

Ajax是异步的,对吗?!你的问题严重缺乏背景知识。如何调用$'body'.css'display','block';?您能提供完整的代码示例吗?请尝试visibility hide,如下所述:最好使用加载div覆盖页面,而不是隐藏正文“code”$document.readyfunction{$'body.css'visibility','hide';$boards.loadboards.php?id=;$components.loadcomponents.php;$activities.loadactivities.php;$tasks.loadtasks.php;$'body.css'visibility','show';};
#full-loader
{
    position: absolute;
    width: 100vw;
    height: 100vh;
    background-color: black;
    top: 0;
    left:0;
    z-index: 9001;
}
<div id="full-loader">
    <h1>Loading ...</h1>
</div>
$('#full-loader').hide(); // Only hides the div in case you want to reuse it
$('#full-loader').remove(); // Removes the div
#preload{
        width:100%;
        height:100%;
        position:fixed;
        background-color:#222;
        display:none;
        color:#EEE;
        font-size:4em;
        text-align:center;
        padding-top:200px;
        z-index:1000;
    }   
<body>
    <div id="preload">...Loading...</div>
    <script>document.getElementById("preload").style.display = "block";</script>

    <!-- .......... Your content here ........ -->

    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
        $('#preload').hide();
    </script>
</body>
</html>