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

 更新时间:2015年10月27日 11:08:38   作者:企鹅  
这篇文章主要介绍了JS基于Ajax实现的网页Loading效果代码,通过时间函数结合数学运算实现页面样式的动态变换技巧,具有一定参考借鉴价值,需要的朋友可以参考下

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

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

运行效果截图如下:

在线演示地址如下:

http://demo.jb51.net/js/2015/js-ajax-web-loading-style-codes/

具体代码如下:

<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获取并更改input标签name属性的方法

    JavaScript获取并更改input标签name属性的方法

    这篇文章主要介绍了JavaScript获取并更改input标签name属性的方法,涉及javascript针对表单元素属性的相关操作技巧,需要的朋友可以参考下
    2015-07-07
  • Javascript 实现放大镜效果实例详解

    Javascript 实现放大镜效果实例详解

    这篇文章主要介绍了Javascript 实现放大镜效果实例详解的相关资料,这里附有实现实例代码,具有参考价值,需要的朋友可以参考下
    2016-12-12
  • uniapp H5 https跨域请求实现

    uniapp H5 https跨域请求实现

    这篇文章主要介绍了uniapp H5 https跨域请求实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • JS启动应用程序的一个简单例子

    JS启动应用程序的一个简单例子

    用jscript实现启动程序一个例子
    2008-05-05
  • JavaScript内存泄漏的处理方式

    JavaScript内存泄漏的处理方式

    这篇文章主要介绍了JavaScript内存泄漏的处理方式,通过理论和实例结合的方式让你理解的更加透彻。
    2017-11-11
  • javascript 数组操作详解

    javascript 数组操作详解

    这篇文章主要介绍了javascript 数组操作详解,需要的朋友可以参考下
    2015-01-01
  • JavaScript组合设计模式--改进引入案例分析

    JavaScript组合设计模式--改进引入案例分析

    这篇文章主要介绍了JavaScript组合设模式改进引入案例,结合实例形式分析了JavaScript组合设计模式特性改进的引入示例相关操作技巧,需要的朋友可以参考下
    2020-05-05
  • 跟我学习javascript的Date对象

    跟我学习javascript的Date对象

    跟我学习javascript的Date对象,文章主要介绍了Date 日期和时间对象的操作,文章末尾为大家附加了两个案例,帮助大家更好的学习javascript的Date对象,对这方面感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 一文详解JS私有属性的6种实现方式

    一文详解JS私有属性的6种实现方式

    class是创建对象的模版,由一系列属性和方法构成,用于表示对同一概念的数据和操作。有的属性和方法是对外的,但也有的是私有的。本文梳理了六种私有属性的实现方式,需要的可以参考一下
    2022-03-03
  • GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析

    GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析

    提到axios,相信大家应该都不会陌生,这篇文章主要给大家介绍了关于GitHub上77.9K的Axios项目有哪些值得借鉴的地方,需要的朋友可以参考下
    2021-06-06

最新评论