弹出层之2:JQuery.BlockUI

时间:2022-01-04 18:21:52

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、调用

弹出层之2:JQuery.BlockUI

 

<!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 对象相关的代码:

 

弹出层之2:JQuery.BlockUI弹出层之2:JQuery.BlockUI显示源码
//  重写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

 

 总结:上面的文字个人认为写的比较烂,但基本的使用没有问题,详尽的支持是官网:http://www.malsup.com/jquery/block/,这个站还有一些其它插件也值得看看。

 

本文示例下载