JQuery.BlockUI,JQuery弹出层插件(转)

momode 2014-04-29

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"/>&nbsp;&nbsp;正在提交...'});  
        }  
        $("#formId").submit();  
} 

相关推荐

Web全栈笔记 / 0评论 2020-06-15