彈出層之2:JQuery.BlockUI

 

JQuery.BlockUI是衆多JQuery插件彈出層中的一個,它小巧(原版16k,壓縮後10左右),容易使用, 功能齊全,支持Iframe,支持Modal,可定製性高也意味他默認謙虛的外表。javascript

jQuery的BlockUI插件能夠讓你在使用AJAX時模擬同步行爲,鎖定瀏覽器(模式窗口)。當被激活時,它會防止用戶活動的頁面(或頁面的一部分),直到它被禁用。 BlockUI添加元素的DOM,給它的外觀和阻止用戶交互行爲。css

一、首先引入插件html

  <script src="jquery.min.js" type="text/javascript"></script>
    <script src="JQuery.BlockUI.min.2.39.js" type="text/javascript"></script>
java

二、調用jquery

 

<!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>
web

 

三、樣式修改瀏覽器

jQuery blockUI 提供的默認樣式過於樸素, 能夠在每一次調用blockUI() 函數時進行修改. 也一次直接修改庫文件 jquery.blockUI.js, 修改$.blockUI.defaults 對象相關的代碼:app

 

顯示源碼 dom

// 重寫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/,這個站還有一些其它插件也值得看看。

 

本文示例下載

相關文章
相關標籤/搜索