浅析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 相关文章推荐
跨浏览器开发经验总结(四) 怎么写入剪贴板
May 13 Javascript
利用JS自动打开页面上链接的实现代码
Sep 25 Javascript
jQuery $.extend()用法总结
Jun 15 Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 Javascript
javascript实现五星评价代码(源码下载)
Aug 11 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 Javascript
js 作用域和变量详解
Feb 16 Javascript
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 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 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
PHP实现货币换算的方法
2014/11/29 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
电气自动化个人求职信范文
2014/02/03 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
天那边观后感
2015/06/09 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js