JS实现页面加载完毕之前loading提示效果
1.获取浏览器页面可见高度和宽度
var _PageHeight = document.documentElement.clientHeight,
_PageWidth = document.documentElement.clientWidth;
2.计算loading框距离顶部和左部的距离(loading框的宽度为215px,高度为61px)
var _LoadingTop = _PageHeight > 61 ? (_PageHeight - 61) / 2 : 0,
_LoadingLeft = _PageWidth > 215 ? (_PageWidth - 215) / 2 : 0;
3.在页面未加载完毕之前显示的loading Html自定义内容
var _LoadingHtml = '<div id="loadingDiv" style="position:absolute;left:0;width:100%;height:' + _PageHeight + 'px;top:0;background:#f3f8ff;opacity:0.8;filter:alpha(opacity=80);z-index:10000;"><div style="position: absolute; cursor1: wait; left: ' + _LoadingLeft + 'px; top:' + _LoadingTop + 'px; width: auto; height: 57px; line-height: 57px; padding-left: 50px; padding-right: 5px; background: #fff url(/Content/loading.gif) no-repeat scroll 5px 10px; border: 2px solid #95B8E7; color: #696969; font-family:\'Microsoft YaHei\';">页面加载中,请等待...</div></div>';
4.呈现loading效果
document.write(_LoadingHtml);
//window.onload = function () {
// var loadingMask = document.getElementById('loadingDiv');
// loadingMask.parentNode.removeChild(loadingMask);
//};
5.监听加载状态改变(这一步是防止LOADING出错)
document.onreadystatechange = completeLoading;
//加载状态为complete时移除loading效果
function completeLoading() {
if (document.readyState == "complete") {
var loadingMask = document.getElementById('loadingDiv');
loadingMask.parentNode.removeChild(loadingMask);
}
}
最新文章
- Microservice Anti-patterns
- http协议(十一)http与https
- MySQL Fabric和MyBatis的整合过程中遇到的问题
- 【转】一名大学生的PHP进阶之路
- CF# Educational Codeforces Round 3 E. Minimum spanning tree for each edge
- 关于viewpoint的疑惑
- Python之logging模块
- Java for LeetCode 037 Sudoku Solver
- jQuery对表单、表格的操作及更多应用(中:表格应用)
- Hbase 建表基本命令总结
- rpmbuild构建包时的宏定义的赋值
- PPT2010中设置音乐播放停止位置
- cxf-webservice-在was6服务器上运行
- 电子科大POJ ";3*3矩阵的乘法";
- sqlserver bak还原
- MySQL触发器学习
- spring boot自定义starter
- Libgdx 1.6.0发布,跨平台游戏开发框架
- 爬一下国家统计局行政区划代码C#
- 第十一节、Harris角点检测原理(附源码)
热门文章
- Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据
- Android 软件盘 Editext 问题
- 用java实现文件下载,提示java.lang.IllegalStateException: getOutputStream() has already been called for this response
- .zip版初次安装mysql时遇到的my.ini、服务无法启动以及设置登录密码的问题
- ucos中的三种临界区管理机制
- HDU 5968 异或密码
- asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法
- Thread.join()方法
- PHP动态实例化对象并向构造函数传递参数
- spa 单页面解决浏览器back front 问题