zoukankan      html  css  js  c++  java
  • jQuery遮罩插件 jquery.blockUI.js

    Overview

    jQuery BlockUI 插件可以在不同锁定浏览器的同时,模拟同步模式下发起Ajax请求的行为。该插件激活时,会组织用户在页面进行的操作,直到插件被关闭。BlockUI通过向DOM中添加元素实现其外观和组织用户交互的行为。

    使用jQuery BlockUI,首先需要在jQuery后面引用 jquery.blockUI.js

    jquery.blockUI.js插件下载地址:http://jquery.malsup.com/block/

    用法很简单,组织用户对页面的交互:

    $.blockUI();

    使用自定义信息阻塞UI

    $.blockUI({ message: '<h1><img src="busy.gif" /> Just a moment...</h1>' });

    使用自定义样式阻塞UI

    $.blockUI({ css: { backgroundColor: '#f00', color: '#fff'} });

    解除对页面的遮罩

    $.unblockUI();

    如果你先要使用缺省设置对所有的ajax请求都使用UI遮罩,只需要添加下面语句即可

    $(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

    使用例子:

    页面遮罩示例:

    This page demonstrates several ways to block the page. Each button below activates blockUI and then makes a remote call to the server.

       

    The following code is used on this page:

    <script type="text/javascript"
     
        // unblock when ajax activity stops 
        $(document).ajaxStop($.unblockUI); 
     
        function test() { 
            $.ajax({ url: 'wait.php', cache: false }); 
        } 
     
        $(document).ready(function() { 
            $('#pageDemo1').click(function() { 
                $.blockUI(); 
                test(); 
            }); 
            $('#pageDemo2').click(function() { 
                $.blockUI({ message: '<h1><img src="busy.gif" /> Just a moment...</h1>' }); 
                test(); 
            }); 
            $('#pageDemo3').click(function() { 
                $.blockUI({ css: { backgroundColor: '#f00', color: '#fff' } }); 
                test(); 
            }); 
     
            $('#pageDemo4').click(function() { 
                $.blockUI({ message: $('#domMessage') }); 
                test(); 
            }); 
        }); 
     
    </script> 
     
    ... 
     
    <div id="domMessage" style="display:none;"
        <h1>We are processing your request.  Please be patient.</h1> 
    </div> 

    页面元素遮罩示例:

    This page demonstrates how to block selected elements on the page rather than the entire page. The buttons below will block/unblock access to the bordered area beneath them.

      

    Test link - click me!

     lorem ipsum dolor sit amet consectetuer adipiscing elit sed lorem leo lorem leo consectetuer adipiscing elit sed lorem leo rhoncus sit amet lorem ipsum dolor sit amet consectetuer adipiscing elit sed lorem leo Test link - click me! lorem leo consectetuer adipiscing elit sed lorem leo rhoncus sit amet

    This text will not be blocked. Test link - click me!

    The following code is used on this page:

    <script type="text/javascript"
        $(document).ready(function() { 
     
            $('#blockButton').click(function() { 
                $('div.test').block({ message: null }); 
            }); 
     
            $('#blockButton2').click(function() { 
                $('div.test').block({ 
                    message: '<h1>Processing</h1>', 
                    css: { border: '3px solid #a00' } 
                }); 
            }); 
     
            $('#unblockButton').click(function() { 
                $('div.test').unblock(); 
            }); 
     
            $('a.test').click(function() { 
                alert('link clicked'); 
                return false; 
            }); 
        }); 
    </script> 

    简单模态框示例:

    This page demonstrates how to display a simple modal dialog. The button below will invoke blockUI with a custom message. Depending upon the user response (yes or no) an ajax call will be made while keeping the UI blocked.

    The following code is used on this page:

    <script type="text/javascript"
        $(document).ready(function() { 
     
            $('#test').click(function() { 
                $.blockUI({ message: $('#question'), css: {  '275px' } }); 
            }); 
     
            $('#yes').click(function() { 
                // update the block message 
                $.blockUI({ message: "<h1>Remote call in progress...</h1>" }); 
     
                $.ajax({ 
                    url: 'wait.php', 
                    cache: false, 
                    complete: function() { 
                        // unblock when remote call returns 
                        $.unblockUI(); 
                    } 
                }); 
            }); 
     
            $('#no').click(function() { 
                $.unblockUI(); 
                return false; 
            }); 
     
        }); 
    </script> 
     
    ... 
     
    <input id="test" type="submit" value="Show Dialog" /> 
     
    ... 
     
    <div id="question" style="display:none; cursor: default"
            <h1>Would you like to contine?.</h1> 
            <input type="button" id="yes" value="Yes" /> 
            <input type="button" id="no" value="No" /> 
    </div> 
    For full-featured modal dialog support, check out Simple Modal by Eric Martin or jqModal by Brice Burgess.
    选项
    BlockUI's default options look (exactly) like this:
    // override these in your code to change the default behavior and style 
    $.blockUI.defaults = { 
        // message displayed when blocking (use null for no message) 
        message:  '<h1>Please wait...</h1>', 
     
        title: null,        // title string; only used when theme == true 
        draggable: true,    // only used when theme == true (requires jquery-ui.js to be loaded) 
     
        theme: false, // set to true to use with jQuery UI themes 
     
        // styles for the message when blocking; if you wish to disable 
        // these and use an external stylesheet then do this in your code: 
        // $.blockUI.defaults.css = {}; 
        css: { 
            padding:        0, 
            margin:         0, 
                      '30%', 
            top:            '40%', 
            left:           '35%', 
            textAlign:      'center', 
            color:          '#000', 
            border:         '3px solid #aaa', 
            backgroundColor:'#fff', 
            cursor:         'wait' 
        }, 
     
        // minimal style set used when themes are used 
        themedCSS: { 
              '30%', 
            top:    '40%', 
            left:   '35%' 
        }, 
     
        // styles for the overlay 
        overlayCSS:  { 
            backgroundColor: '#000', 
            opacity:         0.6, 
            cursor:          'wait' 
        }, 
     
        // style to replace wait cursor before unblocking to correct issue 
        // of lingering wait cursor 
        cursorReset: 'default', 
     
        // styles applied when using $.growlUI 
        growlCSS: { 
                '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 issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w 
        // (hat tip to Jorge H. N. de Vasconcelos) 
        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank', 
     
        // force usage of iframe in non-IE browsers (handy for blocking applets) 
        forceIframe: false, 
     
        // z-index for the blocking overlay 
        baseZ: 1000, 
     
        // set these to true to have the message automatically centered 
        centerX: true, // <-- only effects element blocking (page block controlled via css above) 
        centerY: true, 
     
        // allow body element to be stetched in ie6; this makes blocking look better 
        // on "short" pages.  disable if you wish to prevent changes to the body height 
        allowBodyStretch: true, 
     
        // enable if you want key and mouse events to be disabled for content that is blocked 
        bindEvents: true, 
     
        // be default blockUI will supress tab navigation from leaving blocking content 
        // (if bindEvents is true) 
        constrainTabKey: true, 
     
        // fadeIn time in millis; set to 0 to disable fadeIn on block 
        fadeIn:  200, 
     
        // fadeOut time in millis; set to 0 to disable fadeOut on unblock 
        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, 
     
        // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity) 
        // no longer needed in 2012 
        // applyPlatformOpacityRules: true, 
     
        // callback method invoked when fadeIn has completed and blocking message is visible 
        onBlock: null, 
     
        // callback method invoked when unblocking has completed; the callback is 
        // passed the element that has been unblocked (which is the window object for page 
        // blocks) and the options that were passed to the unblock call: 
        //   onUnblock(element, options) 
        onUnblock: null, 
     
        // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493 
        quirksmodeOffsetHack: 4, 
     
        // class name of the message block 
        blockMsgClass: 'blockMsg', 
     
        // if it is already blocked, then ignore it (don't unblock and reblock) 
        ignoreIfBlocked: false 
    }; 
    Changing the blockUI options is simple and can be done in one of two ways:
    1. Globally, by directly overriding the values in the $.blockUI.defaults object
    2. Locally, by passing an options object to the blockUI (or block) function.

    Global Overrides

    You can change the default options by simply declaring different values for them. For example:
    // change message border 
    $.blockUI.defaults.css.border = '5px solid red'; 
     
    // make fadeOut effect shorter 
    $.blockUI.defaults.fadeOut = 200; 

    Local Overrides

    Local overrides are achieved by passing an object to the blockUIunblockUIblock or unblock functions. The exact same options are available to the local options object as are available in the global object. For example:
    // change message border 
    $.blockUI({ css: { border: '5px solid red'} }); 
     
    ... 
     
    // make fadeOut effect shorter 
    $.unblockUI({ fadeOut: 200 }); 
     
    ... 
     
    // use a different message 
    $.blockUI({ message: 'Hold on!' }); 
     
    ... 
     
    // use a different message 
    $('#myDiv').block({ message: 'Processing...' }); 
     插件官网:http://jquery.malsup.com/block
    其他参考博文:http://bookshadow.com/weblog/2014/09/26/jquery-blockui-js-introduction/
     
  • 相关阅读:
    Ubuntu Windows双系统时差8小时问题解决
    linux无线网络配置
    Ubuntu 10.04上腾达W541U V2.0 无线网卡驱动的使用
    有些歌,放在这慢慢听
    [推荐]什么是程序员的优秀品质?
    如何阅读源代码
    Ubuntu中的有线、无线网络连接管理器──Wicd[译]
    linux下无线网卡解决方案之Ndiswrapper终极使用指南
    将jar文件做成exe可运行文件
    WOW裁缝1375详细攻略
  • 原文地址:https://www.cnblogs.com/baiyangyuanzi/p/6531031.html
Copyright © 2011-2022 走看看