浅析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 相关文章推荐
取得传值的函数
Oct 27 Javascript
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
用jquery设置按钮的disabled属性的实现代码
Nov 28 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
Dec 20 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
Dec 30 Javascript
vue中echarts3.0自适应的方法
Feb 26 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
通过Kettle自定义jar包供javascript使用
Jan 29 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
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
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
一步步教你用Python实现2048小游戏
2017/01/19 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Python基于百度云文字识别API
2018/12/13 Python
python根据时间获取周数代码实例
2019/09/30 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Pytorch之finetune使用详解
2020/01/18 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Python类中self参数用法详解
2020/02/13 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
成功的餐厅经营创业计划书
2014/01/15 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
高三毕业评语
2014/12/31 职场文书
2015年安全月活动总结
2015/03/26 职场文书
贫困生证明范文
2015/06/16 职场文书
2016新年问候语大全
2015/11/11 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
会议承办单位欢迎词
2019/07/09 职场文书