当前位置:首页 > JavaScript

js实现遮罩

2026-02-01 17:42:44JavaScript

使用CSS和HTML创建基础遮罩结构

HTML部分定义一个遮罩层和一个内容层:

<div class="mask"></div>
<div class="content">这是页面内容</div>

CSS部分设置遮罩样式:

.mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.5);
  display: none;
  z-index: 100;
}

.content {
  position: relative;
  z-index: 1;
}

通过JavaScript控制遮罩显示/隐藏

基础显示和隐藏功能:

const mask = document.querySelector('.mask');

// 显示遮罩
function showMask() {
  mask.style.display = 'block';
}

// 隐藏遮罩
function hideMask() {
  mask.style.display = 'none';
}

添加点击事件关闭遮罩

为遮罩添加点击关闭功能:

mask.addEventListener('click', function(e) {
  if(e.target === mask) {
    hideMask();
  }
});

结合弹窗使用遮罩

创建带遮罩的弹窗组件:

<div class="mask" id="mask"></div>
<div class="modal" id="modal">
  <div class="modal-content">弹窗内容</div>
  <button class="close-btn">关闭</button>
</div>
const modal = document.getElementById('modal');
const closeBtn = document.querySelector('.close-btn');

function showModal() {
  document.getElementById('mask').style.display = 'block';
  modal.style.display = 'block';
}

closeBtn.addEventListener('click', function() {
  document.getElementById('mask').style.display = 'none';
  modal.style.display = 'none';
});

动画效果增强

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

.mask {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mask.show {
  opacity: 1;
}
function showMaskWithAnimation() {
  mask.classList.add('show');
}

function hideMaskWithAnimation() {
  mask.classList.remove('show');
}

高级用法:动态创建遮罩

通过JavaScript动态创建遮罩元素:

js实现遮罩

function createDynamicMask() {
  const mask = document.createElement('div');
  mask.className = 'dynamic-mask';
  mask.style.position = 'fixed';
  mask.style.top = '0';
  mask.style.left = '0';
  mask.style.width = '100%';
  mask.style.height = '100%';
  mask.style.backgroundColor = 'rgba(0,0,0,0.7)';
  mask.style.zIndex = '1000';
  document.body.appendChild(mask);

  return mask;
}

标签: js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…