浅析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 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
原生javascript实现隔行换色
Jan 04 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
Jan 09 Javascript
仿iframe效果Aajx文件上传实例
Nov 18 Javascript
js css自定义分页效果
Feb 24 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
Feb 09 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
vue+elementUI动态生成面包屑导航教程
Nov 04 Javascript
vue实现分页的三种效果
Jun 23 Javascript
JavaScript实现点击切换验证码及校验
Jan 10 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
Zerg基本策略
2020/03/14 星际争霸
PHP 采集程序中常用的函数
2009/12/09 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
动态调用CSS文件的JS代码
2010/07/29 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
简单的Python的curses库使用教程
2015/04/11 Python
python图片验证码生成代码
2016/07/02 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
python实现双色球随机选号
2020/01/01 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
职员竞岗演讲稿
2014/05/14 职场文书
事业单位鉴定材料
2014/05/25 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
机器人总动员观后感
2015/06/09 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
浅谈PHP7中的一些小技巧
2021/05/29 PHP