You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在调用加载器(loader)时将整个页面置灰?

实现Ajax加载时的页面置灰效果

要实现页面背景置灰,只需新增一个全屏遮罩层,和加载图标配合显示即可,具体步骤如下:

1. 修改HTML结构

在#loader同级添加遮罩层元素:

<div id="loader-overlay"></div>
<div id="loader"></div>

2. 补充遮罩层CSS样式

在现有CSS基础上添加以下代码,让遮罩层覆盖整个页面并呈现半透明灰色:

#loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 半透明灰色,可按需调整透明度 */
    z-index: 0; /* 层级低于加载图标,确保图标悬浮在遮罩上方 */
    display: none; /* 默认隐藏 */
}

/* 保留你原有的加载图标及动画样式 */
#loader {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;
    width: 120px;
    height: 120px;
    margin: -76px 0 0 -76px;
    border: 16px solid #f3f3f3;
    border-radius: 50%;
    border-top: 16px solid #3498db;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

3. 更新jQuery代码,同步控制遮罩层

在Ajax请求的开始/结束钩子中,同时控制遮罩层的显示与隐藏:

// Ajax开始时显示加载图标和遮罩层
$(document).ajaxStart(function() {
    $("#loader").show();
    $("#loader-overlay").show();
});

// Ajax结束时隐藏加载图标和遮罩层
$(document).ajaxStop(function() {
    $("#loader").hide();
    $("#loader-overlay").hide();
    $('#cancelBtn').removeAttr('hidden');
});

设置完成后,Ajax运行时页面会被半透明灰色遮罩覆盖,加载图标悬浮在上方,能更清晰地突出加载状态。

内容的提问来源于stack exchange,提问作者Merve Ozdogan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:15:16