等待刷新之利器 -- 简单使用JQuery BlockUI

本文介绍如何利用BlockUI插件提升Ajax请求期间的用户体验,包括加载指示器的显示及位置调整等细节。

<!-- JQ Block UI -->
<!-- 第一步,引入相关js文件,注意的是blockUI依赖于jQuery -->
<script type="text/javascript" src="../ui/jquery.blockUI.js"></script>
<script type="text/javascript" src="../jq/jquery.min.js"></script>

<!-- 第二步,让旋转的小图标隐藏起来(其实就是一个gif图片,哈哈)-->
<div style="display: none" id="loading"><img src="../img/loading.gif" alt="loading"/></div>

<!-- 在Ajax使用之前添加 -->
$(document).ajaxStart(function(){
			 $.blockUI({
		            message: $('#loading'),
		            css: {
		                top:  ($(window).height() - 400) /2 + 'px',
		                left: ($(window).width() - 400) /2 + 'px',
		                width: '400px',
		                border: 'none'
		            },
			    overlayCSS: { backgroundColor: '#fff' }
		        });
		}).ajaxStop($.unblockUI);
<!-- there is your Ajax request -->

官网:http://malsup.com/jquery/block/

其中例子很详细,可以参考学习。上面所写的若请求Ajax一直没有结束,用户都无法进行其他操作,有点不友好,可以设置超时时间,详细查看官网setTimeOut。

疑惑:当文档刚开始加载的时候,这个BlockUI是无法起作用,只能在浏览器渲染完毕后,为按钮添加事件什么的才起作用。还没弄明白,欢迎大侠指教。



                
制作者 1,乐清*梅雷 部分内容参考百度QQ:1821117007 一共大概花了15个小时翻译以及制作。 2,彭辅军,网名:小白鼠,QQ:3243729373 二次开发QQ群:331643674 在梅雷基础上增加了内容,一共大概花了20个小时翻译以及制作。 本帮助文档可复制,可传播,但需要保留制作者信息,谢谢! 其中大部分内容测试比对过,部分没有进行测试比对效果。请以实际效果为准。本文只做参考。 注:由于BlockUI更新比较频繁,各版本之间会存在差异,有些版本的控件的属性名并没有那么多,或者此帮助文件并没有列进去,那么可以通过下面方法查看当前版本某控件的所有的属性名和类型: void get_block_ui_type_name(NXOpen::BlockStyler::UIBlock* BLOCK_UI_name) { Session*theSession=NXOpen::Session::GetSession(); ListingWindow*lw=theSession->ListingWindow(); lw->Open(); NXOpen::BlockStyler::PropertyList::ListMode mode1 = BLOCK_UI_name->GetProperties()->Mode(); if (mode1==BlockStyler::PropertyList::ListModeIndexed) { lw->WriteLine("ListMode:ListModeIndexed"); } else { lw->WriteLine("ListMode:ListModeNamed"); } int length = BLOCK_UI_name->GetProperties()->Length(); char info[100]; sprintf(info,"数量:%d",length); lw->WriteLine(info); std::vectorarray_nxstr = BLOCK_UI_name->GetProperties()->GetPropertyNames(); for (int i=0;iWriteLine(); BlockStyler::PropertyList::PropertyType type = BLOCK_UI_name->GetProperties()->GetPropertyType(array_nxstr[i]); if(type==0) lw->WriteLine("类型是:String 名称:"+array_nxstr[i]); else if(type==1) lw->WriteLine("类型是:Double 名称:"+array_nxstr[i]); else if(type==2) lw->WriteLine("类型是:Logical 名称:"+array_nxstr[i]); else if(type==3) lw->WriteLine("类型是:Integer 名称:"+array_nxstr[i]); else if(type==4) lw->WriteLine("类型是:Enum 名称:"+array_nxstr[i]); else if(type==5) lw->WriteLine("类型是:Strings 名称:"+array_nxstr[i]); else if(type==6) lw->WriteLine("类型是:UIBlock 名称:"+array_nxstr[i]); else if(type==7) lw->WriteLine("类型是:Point 名称:"+array_nxstr[i]); else if(type==8) lw->WriteLine("类型是:Vector 名称:"+array_nxstr[i]); else if(type==9) lw->WriteLine("类型是:Bits 名称:"+array_nxstr[i]); else if(type==10) lw->WriteLine("类型是:Tagged Object 名称:"+array_nxstr[i]); else if(type==11) lw->WriteLine("类型是:Array 名称:"+array_nxstr[i]); else if(type==12) lw->WriteLine("类型是:Integer 2d-Matrix 名称:"+array_nxstr[i]); else if(type==13) lw->WriteLine("类型是:Double 2d-Matrix 名称:"+array_nxstr[i]); else if(type==14) lw->WriteLine("类型是:Tagged Object 2d-Matrix 名称:"+array_nxstr[i]); else if(type==15) lw->WriteLine("类型是:Integer Vector 名称:"+array_nxstr[i]); else if(type==16) lw->WriteLine("类型是:Double Vector 名称:"+array_nxstr[i]); else if(type==17) lw->WriteLine("类型是:Tagged Object Vector 名称:"+array_nxstr[i]); else if(type==18) lw->WriteLine("类型是:File 名称:"+array_nxstr[i]); else if(type==19) lw->WriteLine("类型是:Selection Filter 名称:"+array_nxstr[i]); else if(type==20) lw->WriteLine("类型是:Undefined 名称:"+array_nxstr[i]); } } //下面是几个示例:控件的值的获取 。。。。。。。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值