当前位置:首页 > JavaScript

js实现遮罩

2026-04-06 10:39:42JavaScript

使用CSS和HTML创建遮罩层

在HTML中添加一个遮罩层的div元素,通常放在body的最后部分以确保覆盖其他内容:

<div id="mask" class="mask"></div>

为遮罩层添加CSS样式,使其覆盖整个视窗并半透明:

js实现遮罩

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

控制遮罩层的显示与隐藏

使用JavaScript控制遮罩层的显示和隐藏:

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

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

点击遮罩层关闭功能

为遮罩层添加点击事件,点击时隐藏遮罩层:

js实现遮罩

document.getElementById('mask').addEventListener('click', function() {
  hideMask();
});

配合模态框使用

遮罩层常与模态框配合使用,需要阻止事件冒泡:

<div id="modal" class="modal">
  <!-- 模态框内容 -->
</div>
document.getElementById('modal').addEventListener('click', function(e) {
  e.stopPropagation();
});

动画效果增强

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

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

.mask.show {
  opacity: 1;
}
function showMask() {
  const mask = document.getElementById('mask');
  mask.style.display = 'block';
  setTimeout(() => mask.classList.add('show'), 10);
}

function hideMask() {
  const mask = document.getElementById('mask');
  mask.classList.remove('show');
  setTimeout(() => mask.style.display = 'none', 300);
}

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…