首页 > 其他分享 >JQuery Block UI V2

JQuery Block UI V2

时间:2023-06-04 14:37:51浏览次数:48  
标签:JQuery function blockUI ... V2 UI message click 页面


[b][color=red]最好参考地址[/color][/b]:[url]http://www.cssrain.cn/demo/blockUI-V2/jQuery/blockUI/jQueryBlockUI.html[/url]
The jQuery BlockUI 插件是用于进行AJAX操作时模拟同步传输时锁定浏览器操作[1]。当它被激活时,它会阻止使用者与页面(或页面的一部分)进行交互,直至它被取消。 BlockUI以在DOM中添加元素的方法来实现阻止用户与浏览器交互的外观和行为。

在翻译过程中,本人进行了测试。目前V2版本不能用于IE8测试版。

这个插件的用法很简单。阻止用户与页面交互:

$.blockUI();


自定义提示信息:



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


自定义显示样式:



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


解除对页面的锁定:



$.unblockUI();


如果要使用默认设置来同步所有的AJAX请求动作,代码如下:



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


[1] 以同步传输的方式来使用XMLHttpRequest对象会在请求结束前阻止用户与浏览器的交互,直到请求结束。通常情况下,这不是一种好的用户体验。



锁定页面的例子



下面显示了几种锁定页面的方法。每个按钮都会激活blockUI并进行一次远程通信。





页面代码如下:



<script type="text/javascript">

    // unblock when ajax activity stops
    $().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" /> 请稍后...</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>正在处理,请稍侯...</h1>
</div>


锁定元素的例子



这里展示了如何锁定页面中的元素,而不是整个页面。 请点击block/unblock按钮查看效果。





测试链接 - 请点击!



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 测试链接 - 请点击!






这段文字不会被锁定。 测试链接 - 请点击!



下面是这个页面的代码:



<script type="text/javascript">
    $(function() {
        $('#blockButton').click(function() {
            $('div.test').block({ message: null });
        });

        $('#blockButton2').click(function() {
            $('div.test').block({ 
                message: '<h1>处理中...</h1>', 
                css: { border: '3px solid #a00' } 
            });
        });

        $('#unblockButton').click(function() {
            $('div.test').unblock();
        });

        $('a.test').click(function() {
            alert('link clicked');
            return false;
        });
    });
</script>


简单的对话框示例



此页展示了如何显示一个简单的模拟对话框。以下按钮将激活blockUI显示一段自定义信息。这个AJAX请求将根据用户的反应(是或否)来发送或取消,在用户决定的这段时间内,会一直保持页面的锁定状态。




下面是这个页面的代码:



<script type="text/javascript">
    $(function() {
        $('#test').click(function() {
            $.blockUI({ message: $('#question'), css: { width: '275px' } });
        });

        $('#yes').click(function() {
            // update the block message
            $.blockUI({ message: "<h1>正在进行通信...</h1>" });

            $.ajax({
                url: 'wait.php',
                cache: false,
                complete: function() {
                    // unblock when remote call returns
                    $.unblockUI();
                }
            });
        });

        $('#no').click($.unblockUI);
    });
</script>

...

<input id="test" type="submit" value="显示对话框" />

...

<div id="question" style="display:none; cursor: default">
        <h1>你确信要继续么?.</h1>
        <input type="button" id="确认" value="Yes" />
        <input type="button" id="取消" value="No" />
</div>


全功能的模拟对话框支持请访问 jqModal Plugin,作者是Brice Burgess。



选项



BlockUI的默认选项设置如下:



// 可以使用以下代码来自定义行为和样式
$.blockUI.defaults = {
	//锁定时显示的提示信息(无提示信息时设置为null)
    message:  '<h1>Please wait...</h1>',

    // 可以用CSS来格式化锁定时显示的信息
    // 如果你希望使用一个外部样式表,请使用一下代码
    // $.blockUI.defaults.css = {};
    css: { 
        padding:        0,
        margin:         0,
        width:          '30%', 
        top:            '40%', 
        left:           '35%', 
        textAlign:      'center', 
        color:          '#000', 
        border:         '3px solid #aaa',
        backgroundColor:'#fff'
    },

    // 设置遮罩层的样式
    overlayCSS:  { 
        backgroundColor:'#000', 
        opacity:        '0.6' 
    },

    // 允许在ie6中缩放body元素。这会使较短的页面看上去好一些
    // 如果你不想body元素的高度被改变,请设置为disable
    allowBodyStretch: true,

    // 默认情况下blockUI会禁止tab导航
    constrainTabKey: true,

    // fadeOut时间单位为毫秒。设为0的话,在解除锁定时不使用fadeout效果。 
    fadeOut:  400,

    // 禁止在FF/Linux上使用遮罩层样式(由于透明度的性能问题)
    applyPlatformOpacityRules: 1
};


改变blockUI的设置非常简单,有2种方式:



1、全局设置, 通过直接指定$.blockUI.defaults对象的值来设置。


2、局部设置, 将options对象放到 blockUI (或 block) 函数内部。


全局设置



你可以通过直接的赋值来改变默认的选项。例如:



// 改变提示信息的边框


$

.blockUI.defaults.css.border = '5px solid red';



// 缩短fadeOut效果的时间


$.blockUI.defaults.fadeOut = 200;


局部设置



局部设置是将options对象放到 blockUI (或 block) 函数内部。这会强制使用局部设置来代替全局设置的值。例如:



// 改变提示信息的边框


$.blockUI({ css: { border = '5px solid red'} });



...



// 缩短fadeOut效果的时间


$.blockUI({ fadeOut: 200 });



...



// 使用一个不同的提示信息


$.blockUI({ message: 'Hold on!' });

标签:JQuery,function,blockUI,...,V2,UI,message,click,页面
From: https://blog.51cto.com/u_3871599/6410556

相关文章

  • 微软Playwright-UI自动化中常用方法总结-java
    经过多天对微软自动化框架Playwright的使用,发现还没有讲该框架的常用方法,比如定位、按键等操作使用。今天我们正好来说说。  一、鼠标类操作     1.单点      .click();   click(Stringselector){                          ......
  • element-ui 组件二次封装
    习题链接element-ui组件二次封装课程列表修复bug,实现elementui组件中的单选功能。关键点作用域插槽(ScopedSlots)在父组件中使用slot-scope="scope"指定了一个名为scope的变量,当然也可以使用其他名称在插槽中就可以使用scope是点父组件中的数据ElementUI组件的Radi......
  • jquery实用广告画廊效果插件-PikaChoose
    PikaChoose是一个超轻量级的图片画廊jQuery插件,它是可以轻而易举地使用在您的网站。有许多的网站使用了他,在他的主页上可以看到这些网站。效果图如: 官网地址:http://www.pikachoose.com/github地址:https://github.com/jeremyfry/PikaChoose ......
  • 【Python】如何在FastAPI中使用UUID标记日志,以跟踪一个请求的完整生命周期
    为什么要使用uuid标记日志?在分布式系统中,一个请求可能会经过多个服务,每个服务都会生成自己的日志。如果我们只使用普通的日志记录,那么很难将这些日志串联在一起,以至难以跟踪一个请求的完整生命周期。如果能够使用uuid标记日志,为每个请求生成一个唯一的uuid,且这个日志可以在不同......
  • 没有服务器的时候,需要自己构造对象的id时候用uuid
    uuid:制定了一套规则专门用于生成全球唯一的字符串编码 uuid有固定的包:但是uuid太大了,生成的字符串也太长了。可以使用uuid的变种:nanoid [nanoid把uuid在一定程度上做了精简]  生成单机版的什么有时候会用的上,实际上id在有服务器的时候,是后端给的。 1.不用停......
  • 大件货运系统源码,技术架构:spring boot、mybatis、redis、vue、element-ui
    网络货运平台源码网络货运平台的功能网络货运是指利用互联网平台,通过物流配送的方式进行商品销售和物流运输的一种新型商业模式。这种模式将传统的货运模式与互联网技术相结合,通过网络平台进行交易、物流配送和结算等一系列流程,从而实现货物的快速、高效、便捷地运输。技术架构:spr......
  • 闲鱼自动化软件——筛选/发送系统 V21已经测试完毕
    更新最近项目比较多,空闲时间较少,软件更新的速度有点慢。虽然一直在积累更新的点,也一直在写写停停,还有很多想加进去的想法,和想提升的地方没有写好。还有一个压力稍小的点,就是1.1.20版一直在稳定使用。与其说是例行更新,倒不是如说是优化更多一些:原来虽然使用了自动排版的代码,但当屏......
  • v2r[abc]ayA
    Debian/Ubuntuv2r[abc]ayA的功能依赖于V2R[abc]ay内核,因此需要安装内核安装V2R[abc]ay内核方法一V2R[abc]ay的官方脚本V2R[abc]ay安装参考:https://github.com/v2fly/fhs-install-v2r[abc]ay方法二v2r[abc]ayA提供的镜像脚本curl-Lshttps://mirrors.v2r[abc]aya.......
  • elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择
    效果展示(多列可以配置)  一、icon下拉框的多列选择:  二、常规、通用下拉框的多列选择:【注】第二种常规、通用下拉框的多列选择,是在第一种的前端代码上删除几行代码就行(把icon显示标签删去),所以下面着重介绍第一种icon下拉框的多列选择。思路  不使用下拉框标签<el-option>......
  • 最小编译器和 UI 框架「GitHub 热点速览」
    如果有一个关键词来概述本周的GitHub热门项目的话,大概就是van和sectorc都用到的smallest。只不过一个是前端的响应式框架,一个是搞编译的C编译器。它们除了轻量化这个共同特点之外,还有好用,足以满足你的日常编程所需。说到编程,EasySpider便是一个免去敲代码工作量,用看得见......