原创,让你的 "Ajax"请求华丽转身,给 "body" 或是 "Div" 加上Loading遮罩!
2013-03-21 14:10
309 查看
如图一所示:body级别的遮罩,整个页面Loading加载........效果!
如图二所示:Div级别的遮罩,具体到某个Div的Loading加载........效果!
Html代码如下:
在这次项目中,我就发现了这个问题,ajax请求太单调了,以前的做法都是在ajax请求之前手动去设置一个Loading加载的小图片,加载完成之后隐藏,每次都重复着写这样的代码,实在是太麻烦了。直到前段时间看了“蒋大叔”的一篇ajax文章,给了我一个想法,但是还不达打到我想要的目的,所以自己又想着做成通用的,一次性解决这个疑难杂症,一劳永逸,又自己改了改,现在总算是通用的了!
调用如下:
写完收工,如果您觉得小弟还可以,请给我一点评价,哪怕是“赞”,也可以!
如图二所示:Div级别的遮罩,具体到某个Div的Loading加载........效果!
Html代码如下:
<a href="#" id="load">Load</a> <div id="tb"> <div id="result"> </div> </div>
在这次项目中,我就发现了这个问题,ajax请求太单调了,以前的做法都是在ajax请求之前手动去设置一个Loading加载的小图片,加载完成之后隐藏,每次都重复着写这样的代码,实在是太麻烦了。直到前段时间看了“蒋大叔”的一篇ajax文章,给了我一个想法,但是还不达打到我想要的目的,所以自己又想着做成通用的,一次性解决这个疑难杂症,一劳永逸,又自己改了改,现在总算是通用的了!
/******重写Ajax操作,做成通用Loading操作*******/ $.ajaxLoading = function (options, aimDiv) { var img = $("<img id=\"progressImgage\" src=\"/Images/ajax-loader.gif\" />"); //Loading小图标 var mask = $("<div id=\"maskOfProgressImage\"></div>").addClass("mask").addClass("hide"); //Div遮罩 var PositionStyle = "fixed"; //是否将Loading固定在aimDiv中操作,否则默认为全屏Loading遮罩 if (aimDiv != null && aimDiv != "" && aimDiv != undefined) { $(aimDiv).css("position", "relative").append(img).append(mask); PositionStyle = "absolute"; } else { $("body").append(img).append(mask); } img.css({ "z-index": "2000", "display": "none" }) mask.css({ "position": PositionStyle, "top": "0", "right": "0", "bottom": "0", "left": "0", "z-index": "1000", "background-color": "#000000", "display": "none" }); var complete = options.complete; options.complete = function (httpRequest, status) { img.hide(); mask.hide(); if (complete) { complete(httpRequest, status); } }; options.async = true; img.show().css({ "position": PositionStyle, "top": "40%", "left": "50%", "margin-top": function () { return -1 * img.height() / 2; }, "margin-left": function () { return -1 * img.width() / 2; } }); mask.show().css("opacity", "0.1"); $.ajax(options); };
调用如下:
$("#load").click(function() { $.ajaxLoading({ url:'@Url.Action("Index")?' + new Date().toTimeString(), success: function (result) { $("#result").html(result); } }, "#tb"); });
写完收工,如果您觉得小弟还可以,请给我一点评价,哪怕是“赞”,也可以!
相关文章推荐
- ajax请求加上loading遮罩
- Ajax请求发送的FormData是"[object object]"
- Ajax 以GET方式请求时,参数中包含 "#" 特殊字符的处理
- "百年一遇"奇怪问题的进展:找到原因,ajax请求中断引起
- AJAX.NET 1.0 "Sys未定义" 解决方法
- extjs.4.1,4.2,结合 jquery 遮罩层,ajax 请求时 数据遮罩,动态加载 contral
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- ASP.NET MVC的Ajax.ActionLink 的HttpMethod="Get" 一个重复请求的BUG
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- "跨域" ----cores By Ajax
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- 无法打开登录所请求的数据库 "XXX"。登录失败。 用户 'NT AUTHORITY\SYSTEM' 登录失败。
- Ajax实时验证"用户名/邮箱等"是否已经存在
- Spring mvc使用注解@ResponseBody Ajax请求返回json报406错误
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- [半原创] win7 sound theme of MAC {win7 "mac声音主题方案"}
- button 需要加上type="button" 才能绑定ajax事件 只用<button>标签会出
- 无法打开登录所请求的数据库 "Albums"。登录失败。 用户 'NT AUTHORITY\SYSTEM' 登录失败
- 安装或卸载出现"Windows error 2 occured while loading the Java VM"时解决办法
- form在两个div之间会有间距 得加上style="margin:0px"