浅析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中判断一个元素是否为另一个元素的子元素(或者其本身)
Mar 21 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
javaScript中的原型解析【推荐】
May 05 Javascript
js捕捉键盘事件和按键键值的方法
Oct 10 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
详解Js中的模块化是如何实现的
Oct 18 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 Javascript
通过滑动翻页效果实现和移动端click事件问题
Jan 26 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 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
python脚本第一行如何写
2020/08/30 Python
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
2014年材料员工作总结
2014/11/19 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
员工工作能力评语
2014/12/31 职场文书
学校施工安全责任书
2015/01/29 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
详解mysql三值逻辑与NULL
2021/05/19 MySQL
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
Python turtle编写简单的球类小游戏
2022/03/31 Python