浅析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关键字球状旋转效果的实例代码
Nov 29 Javascript
JavaScript数值数组排序示例分享
May 27 Javascript
javascript实现简单的html5视频播放器
May 06 Javascript
JavaScript仿支付宝密码输入框
Dec 29 Javascript
分类解析jQuery选择器
Nov 23 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
webpack将js打包后的map文件详解
Feb 22 Javascript
原生JS实现的雪花飘落动画效果
May 03 Javascript
vue 不使用select实现下拉框功能(推荐)
May 17 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php 表单数据的获取代码
2009/03/10 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
javascript放大镜效果的简单实现
2013/12/09 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
DOM 高级编程
2015/05/06 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
js中作用域的实例解析
2017/03/16 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
python针对excel的操作技巧
2018/03/13 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python unittest模块用法实例分析
2018/05/25 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
使用python制作一个解压缩软件
2019/11/13 Python
Python telnet登陆功能实现代码
2020/04/16 Python
如何清空python的变量
2020/07/05 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
运动会演讲稿50字
2014/08/25 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis