浅析JS异步加载进度条


Posted in Javascript onMay 05, 2016

展现效果:

1) 当点击Load的时候,模拟执行异步加载. 浏览器被遮挡. 进度条出现.

浅析JS异步加载进度条

实现思路:

1.当用户点击load button执行异步请求. 调用方法 出现加载条

2.怎么实现进度条呢?

1) 在document.body 新增一个div.覆盖浏览器. 设置背景会灰色. z-index = 999. 加载的时候让用户无法修改界面值

2) 在document.body 新增一个动态的div.

代码实现:

Main.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="Loading.js" charset="utf-8"></script>
<link rel="stylesheet" href="Loading.css" media="screen" title="no title" charset="utf-8">
</head>
<body>
<button onclick="showLoading()">Load</button>
</body>
</html>

  Loading.js:

function showLoading()
{
var overDiv = document.createElement("div");
var loadingDiv = document.createElement("div");
var childDiv1 = document.createElement("div");
var childDiv2 = document.createElement("div");
var childDiv3 = document.createElement("div");
overDiv.classList.add('over');
loadingDiv.classList.add('spinner');
childDiv1.classList.add('bounce1')
childDiv2.classList.add('bounce2')
childDiv3.classList.add('bounce3')
loadingDiv.appendChild(childDiv1);
loadingDiv.appendChild(childDiv2);
loadingDiv.appendChild(childDiv3);
document.body.appendChild(overDiv);
document.body.appendChild(loadingDiv)
setTimeout(function()
{
document.body.removeChild(overDiv);
document.body.removeChild(loadingDiv)
}, 5000);
}

  Loading.css

.spinner {
width: 150px;
text-align: center;
left: 50%;
top: 50%;
position: absolute;
z-index: 1000;
}
.over {
width: 100%;
height: 100%;
z-index: 998;
background-color: gray;
position:absolute;
top: 0px ;
left : 0px;
opacity: 0.2;
}
.spinner > div {
width: 30px;
height: 30px;
background-color: #67CF22;
border-radius: 100%;
display: inline-block;
-webkit-animation: bouncedelay 1.4s infinite ease-in-out;
animation: bouncedelay 1.4s infinite ease-in-out;
/* Prevent first frame from flickering when animation starts */
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
.spinner .bounce1 {
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.spinner .bounce2 {
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
@-webkit-keyframes bouncedelay {
0%, 80%, 100% { -webkit-transform: scale(0.0) }
40% { -webkit-transform: scale(1.0) }
}
@keyframes bouncedelay {
0%, 80%, 100% {
transform: scale(0.0);
-webkit-transform: scale(0.0);
} 40% {
transform: scale(1.0);
-webkit-transform: scale(1.0);
}
}

 总结:

1.可以将方法提出来. 对Ajax请求重新封装一次. 实现调用Ajax请求的时候自动条用进度条方法.

2.如果是Angular的话. Angular提供了方法监控http调用.监控http执行请求的时候调用进度条方法就行了.无需在每次执行 http调用.监控http执行请求的时候调用进度条方法就行了.无需在每次执行http的时候都去自己调用出现进度条的方法.

以上内容是小编给大家介绍的js异步加载进度条的相关内容,希望对大家有所帮助!

Javascript 相关文章推荐
jquery 面包屑导航 具体实现
Jun 05 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
Jun 08 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
May 20 Javascript
如何使用HTML5地理位置定位功能
Apr 27 Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 Javascript
jQuery旋转插件jqueryrotate用法详解
Oct 13 Javascript
babel基本使用详解
Feb 17 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
Jun 14 Javascript
JS实现多物体运动的方法详解
Jan 23 Javascript
jQuery实现简单弹幕效果
Nov 28 jQuery
vue实现图片按比例缩放问题操作
Aug 11 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
AngularJS入门(用ng-repeat指令实现循环输出
May 05 #Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 #Javascript
一分钟理解js闭包
May 04 #Javascript
学JavaScript七大注意事项【必看】
May 04 #Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 #Javascript
开启BootStrap学习之旅
May 04 #Javascript
JavaScript入门教程之引用类型
May 04 #Javascript
You might like
论坛头像随机变换代码
2006/10/09 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
基于ssm框架实现layui分页效果
2019/07/27 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Django实现自定义404,500页面教程
2017/03/26 Python
python2.7安装图文教程
2018/03/13 Python
python中for用来遍历range函数的方法
2018/06/08 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Django单元测试工具test client使用详解
2019/08/02 Python
NumPy中的维度Axis详解
2019/11/26 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
企业门卫岗位职责
2013/12/12 职场文书
工会主席事迹材料
2014/06/03 职场文书
公司年会主持词范文!
2019/05/07 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android