代码之家  ›  专栏  ›  技术社区  ›  Billy ONeal IS4

如何使用jquery用户界面阻止用户界面?

  •  5
  • Billy ONeal IS4  · 技术社区  · 14 年前

    我一直在使用这个插件来阻止用户界面: http://jquery.malsup.com/block/

    这个插件工作得很好,只是如果jquery ui没有做这样的事情,我会非常惊讶,因为它的对话功能必须有效地做同样的事情。

    如何使用jquery用户界面阻止用户界面?

    4 回复  |  直到 9 年前
        1
  •  5
  •   alex    11 年前

    你可以做些下流的事情-叫模态,然后 onopen 回拨, remove() 模态本身。

    $("#something").dialog({
       open: function(event, ui) { $('.ui-dialog').remove(); }
    });
    

    嘿!我说它很黑:)

    检查模式代码,看看它是否调用函数来阻塞UI。也许您可以为它添加一个外部引用,这样您就可以自己调用它了。

    将此HTML添加到文档中,然后调用 show() hide() 关于它。

    <div class="ui-widget-overlay" style="width: 100%; height: 100%; z-index: 32767;"></div>
    

    或者(如果你不确定它们是如何制成的)

    它们只是一个 div (一般)绝对定位,100% height / width ,高 z-index 通常是一个 opacity (在IE6中查看如何使用过滤器)。

    您也可以将其设置为 position: fixed 所以如果你滚动它就会一直存在。如果需要,也可以通过执行以下操作来隐藏滚动条 $('body').css({ 'overflow-y': 'hidden' }) .

        2
  •  2
  •   Chetan S    14 年前

    要“阻止”用户界面,只需插入一个绝对定位的具有高z索引和所需背景颜色和不透明度的DIV,这样它就可以覆盖整个页面。

        3
  •  0
  •   Adrian P.    12 年前

    据我所知,jquery只有一个进度条。当然,你可以做以上所有的事情,但是如果你和你已经在使用的东西进行比较,这看起来太复杂了。

    我的建议是尝试改变 jQuery Block UI

    非常干净,有很多CSS选项。易于在任何项目上使用和实现。

        4
  •  0
  •   Sameer Parab    9 年前
    <div id="__messageBox_wait" class="messageBoxArea" style="display: none; cursor: default">
                    <div>
                        <label id="__messageBox_wait_text" style="vertical-align: middle">
                            Please wait</label>
                    </div>
    </div>
    
    function blockUI() {
            var boxHtml = $('#__messageBox_wait');
            var message = "Please wait...";
            $('#__messageBox_wait_text').text(message);
            $.blockUI({
                theme: false,
                title: 'Message',
                message: boxHtml,
                css: 'width:15%'
            });
        }
    
    
        $.unblockUI(); -- call to Unblock UI
         blockUI();  --- call to block UI