网页实现未加载完毕显示loading效果

浏览832

当网页页面加载文件、或者图片过多是,要等很久才打开,解决方法是增加服务器配置,但是没条件的话,可以考虑通过js判断页面是否加载完毕,加载完毕后在显示内容,没加载完毕显示加载中,这种在H5邀请函中经常看见。以下是实现方法,供大家参考。

loading.js

判断页面是否在家完毕,未加载完毕显示loading效果

var _PageHeight = document.documentElement.clientHeight,
  	_PageWidth = document.documentElement.clientWidth;
	//计算loading框距离顶部和左部的距离(loading框的宽度为215px,高度为61px)
var _LoadingTop = _PageHeight > 61 ? (_PageHeight - 61) / 2 : 0,
	_LoadingLeft = _PageWidth > 215 ? (_PageWidth - 215) / 2 : 0;
//在页面未加载完毕之前显示的loading Html自定义内容
var _LoadingHtml = '<div id="loadingDiv" style="height:' + _PageHeight + 'px;"><div style="left: ' + _LoadingLeft + 'px; top:' + _LoadingTop + 'px;"></div></div>';
//呈现loading效果
document.write(_LoadingHtml);
//监听加载状态改变
document.onreadystatechange = completeLoading;
//加载状态为complete时移除loading效果
function completeLoading() {
  	if (document.readyState == "complete") {
 		var loadingMask = document.getElementById('loadingDiv');
 		loadingMask.parentNode.removeChild(loadingMask);
  	}
}

loading样式设置

#loadingDiv{position:absolute;left:0;width:100%;top:0;background:#fff;z-index:10000}
#loadingDiv div{position:absolute;width:auto;height:105px;padding-left:215px;background:#fff url(../images/loading.gif) no-repeat center center/50px 50px}

loading图片下载

loading.gif


  • 暂无任何回答