JS基于Ajax实现的网页Loading效果代码


Posted in Javascript onOctober 27, 2015

本文实例讲述了JS基于Ajax实现的网页Loading效果代码。分享给大家供大家参考,具体如下:

这是一款很不错的网页Loading效果,常用于Ajax交互式网页设计中,点击按钮即可弹出Loading框,若Loading框未加载完成时关闭网页,会弹出确认提示框,用于一些对安全性能要求高的网页交互处理中,比如付款操作。

运行效果截图如下:

JS基于Ajax实现的网页Loading效果代码

在线演示地址如下:

具体代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>很不错的网页Ajax Loading效果</title>
</head>
<BODY STYLE="FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica">
<SCRIPT LANGUAGE="JScript">
var NUMBER_OF_REPETITIONS = 40;
var nRepetitions = 0;
var g_oTimer = null;
function startLongProcess()
{
  divProgressDialog.style.display = "";
  resizeModal();
  btnCancel.focus();
  window.onresize = resizeModal;
  window.onbeforeunload = showWarning;
  continueLongProcess();
}
function updateProgress(nNewPercent)
{
  divProgressInner.style.width = (parseInt(divProgressOuter.style.width)
   * nNewPercent / 100)+ "px";
}
function stopLongProcess()
{
  if (g_oTimer != null)
  {
   window.clearTimeout(g_oTimer);
   g_oTimer = null;
  }
  // Hide the fake modal DIV
  divModal.style.width = "0px";
  divModal.style.height = "0px";
  divProgressDialog.style.display = "none";
  // Remove our event handlers
  window.onresize = null;
  window.onbeforeunload = null;
  nRepetitions = 0;
}
function continueLongProcess()
{
  if (nRepetitions < NUMBER_OF_REPETITIONS)
  {
   var nTimeoutLength = Math.random() * 250;
   updateProgress(100 * nRepetitions / NUMBER_OF_REPETITIONS);
   g_oTimer = window.setTimeout("continueLongProcess();", nTimeoutLength);
   nRepetitions++;
  }
  else
  {
   stopLongProcess();
  }
}
function showWarning()
{
  return "Navigating to a different page or refreshing the window could cause you to lose precious data.\n\nAre you*absolutely* certain you want to do this?";
}
function resizeModal()
{
  divModal.style.width = document.body.scrollWidth;
  divModal.style.height = document.body.scrollHeight;
  divProgressDialog.style.left = ((document.body.offsetWidth -
divProgressDialog.offsetWidth) / 2);
  divProgressDialog.style.top = ((document.body.offsetHeight -
divProgressDialog.offsetHeight) / 2);
}
</SCRIPT>
<INPUT TYPE="BUTTON" VALUE="Click Me!" onclick="startLongProcess();">
<!-- BEGIN PROGRESS DIALOG -->
<DIV STYLE="BORDER: buttonhighlight 2px outset; FONT-SIZE: 8pt; Z-INDEX:
4; FONT-FAMILY: Tahoma; POSITION: absolute; BACKGROUND-COLOR: buttonface;
DISPLAY: none; WIDTH: 350px; CURSOR: default" ID="divProgressDialog"
onselectstart="window.event.returnValue=false;">
  <DIV STYLE="PADDING: 3px; FONT-WEIGHT: bolder; COLOR: captiontext;
BORDER-BOTTOM: white 2px groove; BACKGROUND-COLOR: activecaption">
   加载中……  </DIV>
  <DIV STYLE="PADDING: 5px">
   请稍等,网页正在处理中……
  </DIV>
  <DIV STYLE="PADDING: 5px">
   可能需要数秒钟.
  </DIV>
  <DIV STYLE="PADDING: 5px">
     <DIV ID="divProgressOuter" STYLE="BORDER: 1px solid threedshadow;
WIDTH: 336px; HEIGHT: 15px">
      <DIV ID="divProgressInner" STYLE="COLOR: white; TEXT-ALIGN:
center; BACKGROUND-COLOR: infobackground; MARGIN: 0px; WIDTH: 0px; HEIGHT:
13px;"></DIV>
     </DIV>
  </DIV>
  <DIV STYLE="BORDER-TOP: white 2px groove; PADDING-BOTTOM: 5px; PADDING-TOP: 3px;
BACKGROUND-COLOR: buttonface; TEXT-ALIGN: center">
     <INPUT STYLE="FONT-FAMILY: Tahoma; FONT-SIZE: 8pt" TYPE="button"
ID="btnCancel" onclick="stopLongProcess();" VALUE="取消">
  </DIV>
</DIV>
<!-- END PROGRESS DIALOG -->
<!-- BEGIN FAKE MODAL DIV-->
<DIV ID="divModal"
  STYLE="BACKGROUND-COLOR: white; FILTER: alpha(opacity=75); LEFT: 0px; POSITION:
 absolute; TOP: 0px; Z-INDEX: 3"
  onclick="window.event.cancelBubble=true; window.event.returnValue=false;">
</DIV>
<!-- END FAKE MODAL DIV -->
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
php 中序列化和json使用介绍
Jul 08 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
Sep 01 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
JS 面向对象之继承---多种组合继承详解
Jul 10 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
基于Axios 常用的请求方法别名(详解)
Mar 13 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
javascript中可能用得到的全部的排序算法
Mar 05 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
基于Jquery+div+css实现弹出登录窗口(代码超简单)
Oct 27 #Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 #Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 #Javascript
JavaScript模块规范之AMD规范和CMD规范
Oct 27 #Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 #Javascript
jQuery无刷新分页完整实例代码
Oct 27 #Javascript
js数组如何添加json数据及js数组与json的区别
Oct 27 #Javascript
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
php中的登陆login实例代码
2016/06/20 PHP
PDO::quote讲解
2019/01/29 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
python概率计算器实例分析
2015/03/25 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
python实现批量修改文件名代码
2017/09/10 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
美国内衣品牌:Leonisa
2016/08/14 全球购物
安全宣传标语口号
2014/06/06 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
2014年班主任工作总结
2014/11/08 职场文书
法律讲堂观后感
2015/06/11 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
详解MindSpore自定义模型损失函数
2021/06/30 Python
mysql sock文件存储了什么信息
2022/07/15 MySQL