想請問如何讓網頁在整個網頁還沒有完成讀取之前
我能夠出現div寫說loading...
等到網頁讀取完之後div再消失?
html
<body class="is-loading">
<div class="curtain">
<div class="loader">
loading...
</div>
</div>
<div>
<!--这里 正文 -->
</div>
</body>
style
.loader {
position: fixed;
left: 50%;
top: 50%;
margin: -0.2em 0 0 -0.2em;
text-indent: -9999em;
border-top: 0.3em solid rgba(0, 0, 0, 0.1);
border-right: 0.3em solid rgba(0, 0, 0, 0.1);
border-bottom: 0.3em solid rgba(0, 0, 0, 0.1);
border-left: 0.3em solid #555;
-moz-transform: translateZ(0);
-webkit-transform: translateZ(0);
transform: translateZ(0);
-moz-animation: loader 300ms infinite linear;
-webkit-animation: loader 300ms infinite linear;
animation: loader 300ms infinite linear;
-moz-transition: all 500ms ease;
-o-transition: all 500ms ease;
-webkit-transition: all 500ms ease;
transition: all 500ms ease;
}
.loader,
.loader:after {
border-radius: 50%;
width: 2em;
height: 2em;
}
.curtain {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: white;
-moz-transition: all 600ms ease;
-o-transition: all 600ms ease;
-webkit-transition: all 600ms ease;
transition: all 600ms ease;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
z-index: 0;
overflow: hidden;
}
@-webkit-keyframes loader {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-moz-keyframes loader {
0% {
-moz-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes loader {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.is-loading {
overflow: hidden;
}
.is-loading .curtain {
filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false);
opacity: 1;
z-index: 99;
}
.is-loading .loader {
filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false);
opacity: 1;
}
js
window.onload=function(){
$('body').removeClass('is-loading');
}
如果你的问题不是别的意思的话,可能就是大清要完了。
回归正题。
你可以在页面上放一个占满屏幕的 CSS3 动画或者一张 gif 动图。注意设置 z-index 为最高而且放在所有 DOM 元素之前以确保最先加载
然后监听事件
window.onload = function(){
// 这里就是加载好的时候,把动画移除掉
}
//显示正在加载提示信息
loading: function (jq) {
return jq.each(function () {
var opts = $.data(this, "hiMallDatagrid").options;
if (opts.loadMsg) {
/* 显示正在加载提示信息
*/
var html = ["<tbody><tr style='display:none;'><td colspan=" + opts.columns[0].length + "></td></tr></tbody>"];
if ($("#loadAjax").length === 0) {
html.push("<tr id='loadAjax'><td style='height:100px;text-align:center;' colspan='" + opts.columns[0].length.toString() + "'><img src=''></td></tr>");
}
$(jq).find("tbody").remove();
$(jq).append(html.join(""));
}
});
},
//清除加载提示信息
loaded: function (jq) {
return jq.each(function () {
/* 清除加载提示信息
*/
$("#loadDiv", $(jq)).remove();
});
},
望采纳!
8 回答4.1k 阅读✓ 已解决
6 回答2.5k 阅读✓ 已解决
5 回答2.3k 阅读✓ 已解决
5 回答5.9k 阅读✓ 已解决
4 回答2k 阅读✓ 已解决
3 回答2.1k 阅读
4 回答2.6k 阅读✓ 已解决
实现的办法有很多种,给你写个简单DEMO,你先理解其中的原理,然后把相关的内容替换一下。
把代码拷出来,放在HTML文件跑一下咯。