aspx页面用一个遮罩层显示正在加载,加载完后隐藏该div

已经有好一段时间没有使用.NET控件做web了,今天要优化一个界面,正好是用.NET控件做的,遂把此次解决问题的方案下来。

总是有许多开发人员觉得做东西没思路,我觉得只是见得少了,思考少了的缘故,所以我总是喜欢以写博客的方式记录下来平时工作中遇到的一些问题,并附上解决方案。

需求:界面查询操作比较费时,用一个遮罩层显示操作正在执行,当操作执行完之后,关闭遮罩层。

思路:

1、准备两个div,以嵌套的形式存在,下面的div作为遮罩层,上面的div作为显示用,可以放一个动态图片,再附上几个字——“加载中...”。div默认让其不显示,设置其css样式:display: none;

2、当点击查询时,修改divcss样式让其显示出来,当查询结束后,再把该div隐藏起来,就如此简单。

当然,还有一些细节需要注意,如遮罩层是遮罩整个界面还是只在某一区域实现遮罩效果,我这里是实现区域遮罩,如果要实现整个界面遮罩只要稍微修改下js就可以了。

效果图如下:

Html代码如下:

[html]  view plain  copy
 print ?
  1. <div id="MyDiv" class="white_content"> <!--弹出层时背景层DIV-->    
  2.     <div class="loading">  
  3.         <span style='width: 115px; height: 115px;'>  
  4.             <img src='Images/progress.gif' alt="数据正在加载..." /></span><span class='spnContent'>数据正在加载...</span>  
  5.     </div>  
  6. </div>  
Css代码如下:

[css]  view plain  copy
 print ?
  1. /*------------------------加载div样式----------------------------------------*/  
  2.         .loading {  
  3.             z-index1001;  
  4.             vertical-alignmiddle;  
  5.             text-align:center;  
  6.             height:115px;  
  7.             line-height:115px;  
  8.         }  
  9.         .spnContent {  
  10.             vertical-align50%;  
  11.             margin-left10px;  
  12.             colorred;  
  13.             font-size18px;  
  14.             font-weightbold;  
  15.         }  
  16.         .white_content {  
  17.             displaynone;  
  18.             positionabsolute;  
  19.             border3px solid lightblue;  
  20.             background-color#CAE4F7;  
  21.             z-index9999;  
  22.             -moz-opacity: 0.5;  
  23.             opacity: .50;  
  24.             filter: alpha(opacity=50);  
  25.             vertical-alignmiddle;  
  26.             top:0px;  
  27.             text-align:center;  
  28.         }  
  29.         .navPoint {  
  30.             colorwhite;  
  31.             cursor:pointer;  
  32.             font-family: Webdings;  
  33.             font-size9pt;  
  34.         }  
  35.  /*-------------------------------------------------------------------------*/  
js代码如下:

[javascript]  view plain  copy
 print ?
  1.  /*-----------------------------加载div-----------------------------------*/  
  2.         var show_div = 'MyDiv'//遮罩div的id  
  3.         //弹出隐藏层  
  4.         function ShowDiv() {  
  5.             var showdiv = document.getElementById(show_div);  
  6.             if (showdiv == undefined) {  
  7.                 return;  
  8.             }  
  9.             showdiv.style.width = $(document).width()+"px";  
  10.             showdiv.style.top = $("#divList").offset().top + "px"//divList是要指定的div的id,在该div上进行遮罩  
  11.             showdiv.style.left = $("#divList").offset().left + "px";  
  12.             //如果要遮罩整个页面:设置遮罩div的高:$(document).height() + "px" 宽:$(document).width()+"px";  
  13.             showdiv.style.height = $("#divList").height() + "px";   
  14.             showdiv.style.display = 'block';  
  15.         };  
  16.         //关闭弹出层  
  17.         function CloseDiv() {  
  18.             document.getElementById(show_div).style.display = 'none';  
  19.         };  
  20.  /*----------------------------------------------------------------*/  
  21. function validateInput() {  
  22.      ShowDiv();  
  23.      __doPostBack("btnSearch""");  
  24. }  

 
aspx页面关键代码: 

[html]  view plain  copy
 print ?
  1. <asp:Button ID="btnSearch" runat="server" Text="查 询" CssClass="btn"  Font-Bold="True" Height="25px" Width="80px" UseSubmitBehavior="False"  
  2. p;OnClick="btnSearch_Click" OnClientClick="return validateInput();" />  
cs代码:

[csharp]  view plain  copy
 print ?
  1.         protected void btnSearch_Click(object sender, EventArgs e)  
  2.         {     
  3.            //省略掉耗时的查询操作代码           
  4.           ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "HiddenDiv""CloseDiv();"true); //关闭加载div  
  5.         }  

代码很简单,也加了注释,这里我就不详细解释了。


原文地址:http://blog.csdn.net/zouyujie1127/article/details/42125587#comments

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值