一.普通页面实现
jquery给出了两个函数来判断这两个节点,
判断DOM元素加载完成,还是页面中的所有关联文件(包括图片)
$(document).ready()是在页面上所有DOM元素加载完毕后才执行。
$(window).load();方法是在网页中所有的元素(包括元素的关联文件)完全加载到浏览器后才执行。
//此处选用load方法
$(window).load(function(){
//关闭loading
});
二. ajax请求loading效果实现实例:
在页面初始化的时候,在页面<body>标签的顶部来添加loading层并禁止页面滚动,请求结束后移除loading加载dom元素启用页面滚动。
//依赖jquery
$(document).ajaxStart(function () {
let str = `
<div id="loadingBox" tabindex="-1">
<div class="loading">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
<p class="loading-text">正在加载...</p>
</div>
</div>
`;
$('body *:first').before(str);
//禁止页面滚动
$('body').css({ 'position': 'fixed', "width": "100%" });
}).ajaxStop(function () {
$('#loadingBox').remove();
//开启页面滚动
$("body").css({ "position": "initial", "height": "auto" });
})
css代码如下:
#loadingBox {
position: fixed;
top:0;
left:0;
right: 0;
bottom: 0;
z-index: 500;
background-color: rgba(0, 0, 0, 0.75);
.loading{
position: absolute;
top: 45%;
left: 50%;
transform: translate(-50%,-50%);
.loading-text{
color: #FFF;
padding: 10px 0;
}
}
.pswp__preloader__icn {
margin: 0 auto;
width : 24px;
height : 24px;
-webkit-animation: clockwise 500ms linear infinite;
animation : clockwise 500ms linear infinite;
}
.pswp__preloader__cut {
position: relative;
width : 12px;
height : 24px;
overflow: hidden;
position: absolute;
top : 0;
left : 0;
}
.pswp__preloader__donut {
box-sizing : border-box;
width : 24px;
height : 24px;
border : 2px solid #FFF;
border-radius : 50%;
border-left-color : transparent;
border-bottom-color: transparent;
position : absolute;
top : 0;
left : 0;
background : none;
margin : 0;
-webkit-animation : donut-rotate 1000ms cubic-bezier(.4, 0, .22, 1) infinite;
animation : donut-rotate 1000ms cubic-bezier(.4, 0, .22, 1) infinite;
}
@-webkit-keyframes clockwise {
0% {
-webkit-transform: rotate(0deg)
}
100% {
-webkit-transform: rotate(360deg)
}
}
@keyframes clockwise {
0% {
transform: rotate(0deg)
}
100% {
transform: rotate(360deg)
}
}
@-webkit-keyframes donut-rotate {
0% {
-webkit-transform: rotate(0)
}
50% {
-webkit-transform: rotate(-140deg)
}
100% {
-webkit-transform: rotate(0)
}
}
@keyframes donut-rotate {
0% {
transform: rotate(0)
}
50% {
transform: rotate(-140deg)
}
100% {
transform: rotate(0)
}
}
}