在等待ajax请求时显示微调器并禁用页面

Fla*_*nix 6 html javascript ajax jquery

我有一个项目,我使用MVC C#,Bootstrap和FontAwesome.

我的目标是在等待ajax请求时显示一个微调器并禁用该页面.

到目前为止,我已使用以下代码成功完成了此目标:

HTML:

<div id='ajax_loader' style="position: fixed; left: 50%; top: 50%; display: none;">
    <img src="~/Images/ajax-loader.gif">
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

function blablabla() {
            //show spinner, disable page
            var modal = $('<div>').dialog({ modal: true });
            modal.dialog('widget').hide();
            $('#ajax_loader').show();

            $.ajax({
                type: "Get",
                url: url,
                success: function (result) {
                   alert("success! " + result);
                },
                error: function(result) {
                    alert("error!" + result);
                },
                complete: function () {
                    //back to normal!
                    $('#ajax_loader').hide();
                    modal.dialog('close');
                }
            });
        }
Run Code Online (Sandbox Code Playgroud)

现在,这段代码有效,我禁用了页面,并显示了一个微调器. 然而,这个微调器也是灰色的,我不希望发生这种情况.

我该如何防止这个错误?

Fla*_*nix 12

因此,经过长时间的搜索,我找到了自己的解决方案:

这是带有旋转轮,进度条或任何您想要的任何模态.它位于名为"_WaitModal"的部分文件中

<div class="modal hide" id="pleaseWaitDialog" data-backdrop="static" data-keyboard="false">
    <div class="modal-header">
        <h1>Please Wait</h1>
    </div>
    <div class="modal-body">
        <div id="ajax_loader">
            <img src="~/Images/ajax-loader.gif" style="display: block; margin-left: auto; margin-right: auto;">
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

@Html.Partial("_WaitModal")在视图中使用它来集成它(但不显示它).

然后,当我想要显示它时,我使用:

$('#pleaseWaitDialog').modal();
Run Code Online (Sandbox Code Playgroud)

并隐藏它:

$('#pleaseWaitDialog').modal('hide');
Run Code Online (Sandbox Code Playgroud)

我希望这对其他人也有帮助!


Aru*_*Aru 6

尝试这个..

html

<button>Click Me</button>
<div class="ajax_loader hidden"><i class="fa fa-spinner fa-spin"></i></div>
Run Code Online (Sandbox Code Playgroud)

CSS

body{
    position:relative;
}
.hidden{
    display:none;
}
.ajax_loader{
    position:absolute;
    width:100%;
    height:100%;
    left:0;
    top:0;
    background:rgba(0,0,0,.5);
}
.ajax_loader i{
    position:absolute;    
    left:50%;
    top:50%;
}
Run Code Online (Sandbox Code Playgroud)

脚本

$("button").click(function () {
    $(".hidden").show();
});
Run Code Online (Sandbox Code Playgroud)

小提琴演示