浅析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 相关文章推荐
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
jQuery验证元素是否为空的两种常用方法
Mar 17 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
Mar 12 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
jQuery时间验证和转换为标准格式的时间格式
Mar 06 Javascript
微信小程序switch组件使用详解
Jan 31 Javascript
小程序实现五星点评效果
Nov 03 Javascript
JS使用队列对数组排列,基数排序算法示例
Mar 02 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
symfony2.4的twig中date用法分析
2016/03/18 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python实现dict版图遍历示例
2014/02/19 Python
Python中的包和模块实例
2014/11/22 Python
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python实现web方式logview的方法
2015/08/10 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
护士自我鉴定怎么写
2014/02/07 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
汽车销售合同文本
2019/08/08 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python