• 弹出层之2:JQuery.BlockUI


    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;  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, 
                      '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: { 
                '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/,这个站还有一些其它插件也值得看看。

     

    本文示例下载

  • 相关阅读:
    10款免费开源图表插件推荐
    jQuery中$.get()、$.post()和$.ajax()
    layer弹出层的iframe页面回调
    【转载】MSXML应用总结 概念篇
    【转载】MSXML应用总结 开发篇(上)
    【转载】MSXML应用总结 开发篇(下)
    【转载】MFC怎么封装CreateWindow
    【转载】MFC的Main函数跑哪去了
    【转载】C++创建对象的两种方法
    【转载】malloc内存分配与free内存释放的原理
  • 原文地址:https://www.cnblogs.com/best/p/2197842.html
Copyright © 2020-2023  润新知