浅析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 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
javascript IE中的DOM ready应用技巧
Jul 23 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
Jul 15 Javascript
使用jQuery仿苹果官网焦点图特效
Dec 23 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
详解webpack中的hash、chunkhash、contenthash区别
Jan 05 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
es6新特性之 class 基本用法解析
May 05 Javascript
浅谈Node.js 沙箱环境
May 15 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
bootstrap实现tab选项卡切换
Aug 09 Javascript
js实现碰撞检测
Jan 29 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
PHP文本操作类
2006/11/25 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
PHP如何将XML转成数组
2016/04/04 PHP
php短信接口代码
2016/05/13 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
Python3安装Pymongo详细步骤
2017/05/26 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
优秀团员个人的自我评价
2013/10/02 职场文书
学生爱国演讲稿
2014/01/14 职场文书
七一建党日演讲稿
2014/09/05 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
小学生毕业评语
2014/12/26 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
红高粱观后感
2015/06/10 职场文书