当前位置:首页 > 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动态创建遮罩元素:

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
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现跳转

js实现跳转

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

js实现动画

js实现动画

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

js 实现继承

js 实现继承

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

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounc…