当前位置:首页 > JavaScript

js实现遮罩

2026-03-14 16:50:00JavaScript

使用 CSS 和 JavaScript 创建遮罩层

通过动态添加 DOM 元素和 CSS 样式实现遮罩效果。HTML 部分只需基础结构,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>
  </div>

  <script>
    const mask = document.createElement('div');
    mask.className = 'mask';
    document.body.appendChild(mask);

    document.getElementById('showMask').addEventListener('click', () => {
      mask.style.display = 'block';
    });

    mask.addEventListener('click', () => {
      mask.style.display = 'none';
    });
  </script>
</body>
</html>

带关闭按钮的遮罩层

在遮罩层中添加关闭按钮,提供更明确的交互方式。

<div class="mask">
  <span class="close-btn">&times;</span>
</div>

<style>
  .mask {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    display: none;
  }
  .close-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    color: white;
    font-size: 30px;
    cursor: pointer;
  }
</style>

<script>
  const mask = document.querySelector('.mask');
  const closeBtn = document.querySelector('.close-btn');

  document.getElementById('showMask').addEventListener('click', () => {
    mask.style.display = 'block';
  });

  closeBtn.addEventListener('click', () => {
    mask.style.display = 'none';
  });
</script>

动画效果的遮罩层

使用 CSS transition 或 animation 为遮罩添加显示/隐藏动画效果。

.mask {
  opacity: 0;
  transition: opacity 0.3s ease;
}
.mask.show {
  opacity: 1;
}
function toggleMask() {
  const mask = document.querySelector('.mask');
  mask.classList.toggle('show');
}

模态框结合遮罩

创建常见的模态对话框,配合遮罩层使用。

<div class="mask">
  <div class="modal">
    <h3>提示</h3>
    <p>这是一个模态对话框</p>
    <button class="close-modal">关闭</button>
  </div>
</div>

<style>
  .modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    padding: 20px;
    z-index: 1001;
    border-radius: 5px;
  }
</style>

<script>
  document.querySelector('.close-modal').addEventListener('click', () => {
    document.querySelector('.mask').style.display = 'none';
  });
</script>

响应式遮罩层

确保遮罩在不同设备上都能正常显示,添加视口 meta 标签。

<meta name="viewport" content="width=device-width, initial-scale=1.0">
@media (max-width: 768px) {
  .mask {
    background-color: rgba(0, 0, 0, 0.8);
  }
  .modal {
    width: 90%;
  }
}

防止滚动穿透

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

js实现遮罩

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

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

标签: js
分享给朋友:

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现密码

js实现密码

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

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…