AJAX显示加载中并弹出图层遮挡页面的实现示例

前言

相信每位开发者都应该有所了解,当用户发出AJAX请求时,如果长时间处于请求阶段,而没有给出用户回应,会给用户造成错觉,导致用户以为我们的系统“没反应“了。这从某方面来讲是一种不友好。

甚至有的时候,用户看不到想要的结果,就会不停的请求,这样会发生意想不到的后果。

所以,当发出AJAX请求时,我们给出一定的措施,保证系统的正确运行和良好的用户体验。

在这里,我使用的是:显示加载中图片,并弹出一个图层,使用户不能再次发出请求。

实现方法

HTML部分:

<div id="loading" class="loadingdiv">
    <img src="images/data-loading.gif" alt="图片加载中···" />
</div> 

HTML部分只需要放置一个div,里面包含一个img。

CSS样式:

/*图片加载中div图层,用于遮挡页面*/
.loadingdiv
{
  position:absolute;
  text-align:center;
  left:0px;
  top:0px;
  z-index:70;
  background-color:#000000;
  opacity: 0.7;/*透明#CCCCCC*/
  display:none;
  }
/*加载中图片*/
.loadingdiv img
{
  position:absolute;
  left:0px;
  top:0px;
  z-index:80;
  } 

对div和img进行样式设置。

JS代码

//ajax请求过程中,显示加载中图片并显示图层,请求完成隐藏图片
$(function () {
  //注册ajax加载事件
  $("#loading").ajaxStart(function () {
    //一个div,用来遮挡页面,请求过程中,不可操作页面
    var lockwin = $(this);
    //div占满整个页面
    lockwin.css("width", "100%");
    lockwin.css("display", "block");
    lockwin.css("height", $(window).height() + $(window).scrollTop());
    //设置图片居中
    $("#loading img").css("display", "block");
    $("#loading img").css("left", ($(window).width() - 88) / 2);
    $("#loading img").css("top", ($(window).height() + $(window).scrollTop()) / 2);
  }); 

  $("#loading").ajaxStop(function () {
    //隐藏div
    var lockwin = $(this);
    lockwin.css("width", "0");
    lockwin.css("display", "none");
    lockwin.css("height", "0");
    //设置图片隐藏
    $("#loading img").css("display", "none");
  });
}); 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • ajax提交加载进度条示例代码

    实现效果图  加载图片  实现方式: 在jsp页面中加入 样式 复制代码 代码如下: .progress{z-index: 2000} .mask{position: fixed;top: 0;right: 0;bottom: 0;left: 0; z-index: 1000; background-color: #2F2F2F} 节点 复制代码 代码如下: <img id="progressImgage" class="progress" style=&qu

  • JQuery实现Ajax加载图片的方法

    本文实例讲述了JQuery实现Ajax加载图片的方法.分享给大家供大家参考,具体如下: 最近在学习JQuery,想从原理上模拟一下无刷新的相册浏览. 最先想到的思路是利用缓存,也就是先显示提示消息,然后get图片,在get完的时候回调,将img标签的src改掉,由于刚刚get过,有了缓存,所以图片会立刻显示出来. 页面元素: <input class="picbtn" type="button" value="Next" /> <

  • 用ajax动态加载需要的js文件

    习惯了用java,在java中,需要某个类直接import就可以了,所以做javascript的时候也想实现这个效果. 前段时间,用了下dojo,里面的dojo.require的功能很不错,一看代码,晕了,一大堆东西,唉-还是自己写个简单点的,dojo.require可以引入包,我就只做一个导入js文件的. 开始用的document.write,执行顺序不对了,这是在后面进行导入,而我们总是在前面执行中就需要导入的js,这样,执行中就会报"某某未定义",就是顺序问题了. 接着,我就想用

  • php+ajax实现无刷新动态加载数据技术

    我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览.这种技术我暂且称它为滚屏加载技术.我们发现很多网站用到这种技术,必应图片搜索.新浪微博.QQ空间等将该技术应用得淋漓尽致. 滚屏加载技术,就是使用Javascript监视滚动条的位置,每次当滚动条到达浏览器窗口底部时,触发一个Ajax请求后台PHP程序,返回相应的数据,并将返回的数据追加到页面底部,从而实现了动态加载,其实就是一个典型的Ajax应用.本文将使用jQuery,结合PHP,mysql以及JS

  • 使用ajax加载的页面中包含的javascript的解决方法

    1.[使用iframe] 在需要加载的页面中添加一个iframe,如下 复制代码 代码如下: <iframe style="display:none" onload="javascript: close_ticket_onload()"></iframe> onload中添加你所要调用的函数,如果加载的页面在弹出层中,此函数需要放在弹出此层的父页面! 2.[使用eval] 如果使用innerHTML填充XMLHttp取得的数据.如:xxx.i

  • jquery Ajax 实现加载数据前动画效果的示例代码

    复制代码 代码如下: $(document).ready(function(){     $.ajax({        type:"get",        cache:false,        url:"ajaxpage.aspx?t=getcity",        dataType:"json",        beforeSend:function(){           $("#vvv").append('&l

  • Jquery ajax加载等待执行结束再继续执行下面代码操作

    Jquery等待ajax执行完毕再继续执行下面代码的效果,具体代码如下,其实就是将 jquery ajax 函数的 async 参数设置为 false 即可,该参数默认为 true: $(document).ready(function(){ loadphpernote(); window.open('http://www.phpernote.com'); }); function loadphpernote(){ var url='http://www.phpernote.com/ajax.p

  • 滑轮滚动到页面底部ajax加载数据配合jsonp实现探讨

    滚动下拉到页面底部加载数据是很多瀑布流网站的做法,那来看看配合jsonp是如何实现的吧,小菜总结记录之用,高手勿喷. 当然本例子采用的是jquery库,后期会做成原生js. 本例的数据调用的是锋利的jquery一书提供的一段json. 首先要先判断页面怎么样才是滚动到底部,也就是scrollTop+window的height是否大于document的height,jquery如下代码: $(window).scrollTop()+$(window).height()>=$(document).h

  • jQuery+AJAX实现无刷新下拉加载更多

    随着互联网时代的发展,web前端已经和后台数据挂钩,作为web前端仅仅不是只切图写写html,css  和简单js交互. js  code $(function() { var page = 1; var discount = $('#discount'); var innerHeight = window.innerHeight; var timer2 = null; $.ajax({ url: '/lightapp/marketing/verify/apply/list?page=1', t

  • php+ajax+jquery实现点击加载更多内容

    我们在一些微博网站上可以碰到这样的应用,微博内容列表没有使用分页条,而是一次加载一定数量的记录显示在列表页,当用户浏览到列表页底部时,可以通过单击"查看更多"来加载更多记录.本文我将结合jQuery和PHP给大家讲述如何实现这种应用. 基本原理:页面载入时,jQuery向后台请求数据,PHP通过查询数据库将最新的几条记录显示在列表页,在列表页的底部有个"更多"链接,通过触发该链接,向服务端发送Ajax请求,后台PHP程序得到请求参数,并作出相应,获取数据库相应的记录

随机推荐