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