当前位置:首页 > JavaScript

js 实现遮罩

2026-04-07 00:51:33JavaScript

使用 CSS 和 JavaScript 实现遮罩

通过动态创建遮罩层元素并控制其显示/隐藏,可以实现灵活的遮罩效果。以下是一个完整的实现示例:

<!DOCTYPE html>
<html>
<head>
    <style>
        .mask {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            display: none;
        }
        .content {
            position: relative;
            z-index: 1;
        }
    </style>
</head>
<body>
    <div class="content">
        <button id="showMask">显示遮罩</button>
        <button id="hideMask">隐藏遮罩</button>
    </div>

    <script>
        // 创建遮罩元素
        const mask = document.createElement('div');
        mask.className = 'mask';
        document.body.appendChild(mask);

        // 显示遮罩
        document.getElementById('showMask').addEventListener('click', function() {
            mask.style.display = 'block';
        });

        // 隐藏遮罩
        document.getElementById('hideMask').addEventListener('click', function() {
            mask.style.display = 'none';
        });

        // 点击遮罩层关闭
        mask.addEventListener('click', function() {
            this.style.display = 'none';
        });
    </script>
</body>
</html>

遮罩层添加内容

可以在遮罩层中放置其他内容,如加载提示或对话框:

js 实现遮罩

const mask = document.createElement('div');
mask.className = 'mask';
mask.innerHTML = `
    <div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); 
                background: white; padding: 20px; border-radius: 5px;">
        <p>加载中,请稍候...</p>
    </div>
`;
document.body.appendChild(mask);

使用 CSS 动画增强效果

为遮罩添加淡入淡出动画效果:

js 实现遮罩

.mask {
    /* 其他样式同上 */
    opacity: 0;
    transition: opacity 0.3s ease;
}
.mask.show {
    opacity: 1;
    display: block;
}
// 显示遮罩
document.getElementById('showMask').addEventListener('click', function() {
    mask.classList.add('show');
});

// 隐藏遮罩
document.getElementById('hideMask').addEventListener('click', function() {
    mask.classList.remove('show');
    setTimeout(() => mask.style.display = 'none', 300);
});

响应式遮罩实现

确保遮罩在各种设备上都能正常工作:

@media (max-width: 768px) {
    .mask {
        background-color: rgba(0, 0, 0, 0.7);
    }
}

防止滚动穿透

当遮罩显示时禁止页面滚动:

function showMask() {
    mask.style.display = 'block';
    document.body.style.overflow = 'hidden';
}

function hideMask() {
    mask.style.display = 'none';
    document.body.style.overflow = '';
}

这些方法提供了完整的遮罩实现方案,可根据实际需求进行调整和扩展。

标签: js
分享给朋友:

相关文章

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…

js 实现截图

js 实现截图

使用html2canvas库实现截图 html2canvas是一个流行的JavaScript库,可将HTML元素转换为Canvas,进而导出为图片。 安装库: npm install ht…

js实现筛选

js实现筛选

JavaScript 实现数据筛选的方法 使用 Array.filter() 方法 Array.filter() 是 JavaScript 中最常用的筛选方法,它会创建一个新数组,包含通过回调函数测试…

vue.js 实现弹窗

vue.js 实现弹窗

Vue.js 实现弹窗的方法 使用组件化方式创建弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏。组件内包含弹窗的模板、样式和逻辑。 <t…

react.js如何编写

react.js如何编写

编写 React.js 的基本步骤 安装 Node.js 和 npm 确保系统中已安装 Node.js 和 npm(Node.js 自带 npm)。可以通过以下命令检查版本: node -v npm…