当前位置:首页 > 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控制遮罩显示/隐藏

基础显示和隐藏功能:

js实现遮罩

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();
  }
});

结合弹窗使用遮罩

创建带遮罩的弹窗组件:

js实现遮罩

<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 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现继承

js实现继承

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

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现dh

js实现dh

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