JQuery.BlockUI是众多JQuery插件弹出层中的一个,它小巧(原版16k,压缩后10左右),容易使用, 功能齐全,支持Iframe,支持Modal,可定制性高也意味他默认谦虚的外表。
jQuery的BlockUI插件可以让你在使用AJAX时模拟同步行为,锁定浏览器(模式窗口)。当被激活时,它会防止用户活动的页面(或页面的一部分),直到它被禁用。 BlockUI添加元素的DOM,给它的外观和阻止用户交互行为。
1、首先引入插件
- <script src="jquery.min.js" type="text/javascript"></script>
- <script src="JQuery.BlockUI.min.2.39.js" type="text/javascript"></script>
2、调用
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head><title></title>
- <script src="jquery.min.js" type="text/javascript"></script>
- <script src="JQuery.BlockUI.min.2.39.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(function() {
- $('#Button1').click(function() {
- //阻止页面的用户的活动
- $.blockUI();
- });
- $('#Button2').click(function() {
- //自定义信息内容
- $.blockUI({ message: '<h3><img src="busy.gif" /> Just a moment...</h3>' });
- });
- $('#Button3').click(function() {
- //自定义样式
- $.blockUI({ css: { backgroundColor: '#f00', color: '#fff'} });
- });
- $('#Button4').click(function() {
- //定义弹出的信息为页面的某一个元素
- $.blockUI({ message: $('#domMessage') });
- });
- $('#btnClose').click(function() {
- //关闭弹出层
- $.unblockUI();
- });
- $('#Button5').click(function() {
- //设置淡入,淡出,自动关闭时间
- $.blockUI({ fadeIn: 700, fadeOut: 700, timeout: 2000 });
- });
- //简单的气泡提示
- $.growlUI('提示', '删除成功!');
- });
- </script>
- </head>
- <body>
- <ol>
- <li>阻止页面的用户的活动,不会自动消失,请刷新: $.blockUI();
- <input id="Button1" type="button" value="测试" />
- </li>
- <li>自定义消息:
- <input id="Button2" type="button" value="测试" />
- </li>
- <li>自定义样式:
- <input id="Button3" type="button" value="测试" />
- </li>
- <li>弹出指定的元素,并关闭弹出层(该层可以为隐藏):
- <input id="Button4" type="button" value="测试" />
- </li>
- <li>设置淡入,淡出,自动关闭时间:
- <input id="Button5" type="button" value="测试" />
- </li>
- </ol>
- <div id="domMessage" style="text-align: center; width: 200px; height: 50px; border;
- 1px solid #9cf; padding: 25px; display: none;">
- <h3>
- Message</h3>
- <input id="btnClose" type="button" value="关闭" />
- </div>
- </body>
- </html>
3、样式修改
jQuery blockUI 提供的默认样式过于朴素, 可以在每一次调用blockUI() 函数时进行修改. 也一次直接修改库文件 jquery.blockUI.js, 修改$.blockUI.defaults 对象相关的代码:
- 显示源码
- // 重写defaults对象中的属性
- $.blockUI.defaults = {
- //弹出的信息
- message: '<h1>Please wait...</h1>',
- //定义消息框样式
- // $.blockUI.defaults.css = {};
- //默认定义消息框样式Css样式
- css: {
- padding: 0,
- margin: 0,
- width: '30%',
- top: '40%',
- left: '35%',
- textAlign: 'center',
- color: '#000',
- border: '3px solid #aaa',
- backgroundColor:'#fff',
- cursor: 'wait'
- },
- // 遮罩样式
- overlayCSS: {
- backgroundColor: '#000', //颜色
- opacity: 0.6 //透明度
- },
- // 使用$.growlUI完成自动气泡时的样式
- growlCSS: {
- width: '350px',
- top: '10px',
- left: '',
- right: '10px',
- border: 'none',
- padding: '5px',
- opacity: 0.6,
- cursor: null,
- color: '#fff',
- backgroundColor: '#000',
- '-webkit-border-radius': '10px', //貌似是圆角
- '-moz-border-radius': '10px'
- },
- // 是否在非IE浏览器中使IFrame获得焦点,未验证的
- forceIframe: false,
- // 遮罩层的Z-Index值,越大越在上面
- baseZ: 1000,
- // 是否居中
- centerX: true,
- centerY: true,
- //是否允许拉大
- //短的网页上。禁用如果你想防止车身高度的变化
- allowBodyStretch: true,
- //遮罩时是否禁用键盘和鼠标事件
- bindEvents: true,
- // be default blockUI will supress tab navigation from leaving blocking content
- // (if bindEvents is true)
- //遮罩内容的Tab导航是否可用
- constrainTabKey: true,
- //淡入时间
- fadeIn: 200,
- //淡出时间
- fadeOut: 400,
- // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
- //自动淡出时间
- timeout: 0,
- //disable if you don't want to show the overlay
- //是否自动遮罩
- showOverlay: true,
- // if true, focus will be placed in the first available input field when
- // page blocking
- //自动获得焦点
- focusInput: true,
- //抑制FF/Linux的叠加样式的使用(由于具有不透明的性能问题)
- applyPlatformOpacityRules:true,
- //调用解封已完成时回调方法;
- // onUnblock(element, options)
- onUnblock: null
--------------------------------------------------------
正式使用示例:
- function next(){
- if($("#formId").valid()){
- //$("#xiayibu").attr('disabled',true);//下一步按钮不可用
- $.blockUI({ message: '<img height="32" width="32" src="${ctx}/images/wait.gif"/> 正在提交...'});
- }
- $("#formId").submit();
- }