当前位置:首页 > JavaScript

js实现遮盖

2026-04-06 08:30:47JavaScript

实现遮盖效果的方法

在JavaScript中实现遮盖效果通常涉及DOM操作和CSS样式控制。以下是几种常见方法:

使用CSS类切换

通过添加/移除CSS类来控制元素的显示与隐藏:

const element = document.getElementById('target');
element.classList.add('hidden'); // 隐藏
element.classList.remove('hidden'); // 显示

对应CSS:

.hidden {
  display: none;
}

透明度控制

实现半透明遮盖效果:

js实现遮盖

const overlay = document.createElement('div');
overlay.style.position = 'fixed';
overlay.style.top = '0';
overlay.style.left = '0';
overlay.style.width = '100%';
overlay.style.height = '100%';
overlay.style.backgroundColor = 'rgba(0,0,0,0.5)';
overlay.style.zIndex = '999';
document.body.appendChild(overlay);

遮罩层实现

创建全屏遮罩并防止底层内容交互:

const mask = document.createElement('div');
Object.assign(mask.style, {
  position: 'fixed',
  top: 0,
  left: 0,
  right: 0,
  bottom: 0,
  backgroundColor: '#000',
  opacity: 0.7,
  zIndex: 1000,
  pointerEvents: 'auto'
});
document.body.appendChild(mask);
document.body.style.overflow = 'hidden'; // 禁用滚动

SVG遮罩

使用SVG实现复杂遮罩形状:

const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
svg.setAttribute('width', '100%');
svg.setAttribute('height', '100%');
const mask = document.createElementNS("http://www.w3.org/2000/svg", "rect");
mask.setAttribute('width', '100%');
mask.setAttribute('height', '100%');
mask.setAttribute('fill', 'rgba(0,0,0,0.5)');
svg.appendChild(mask);
document.body.appendChild(svg);

图片模糊遮罩

对底层内容应用模糊效果:

js实现遮盖

const content = document.getElementById('content');
content.style.filter = 'blur(5px)';
content.style.transition = 'filter 0.3s ease';

动画遮罩

添加过渡动画效果:

const fadeIn = (element) => {
  element.style.opacity = '0';
  element.style.display = 'block';
  requestAnimationFrame(() => {
    element.style.transition = 'opacity 0.3s';
    element.style.opacity = '1';
  });
};

响应式遮罩

根据视口大小调整遮罩:

window.addEventListener('resize', () => {
  const mask = document.getElementById('mask');
  mask.style.width = window.innerWidth + 'px';
  mask.style.height = window.innerHeight + 'px';
});

点击关闭遮罩

为遮罩添加交互功能:

document.getElementById('mask').addEventListener('click', (e) => {
  if(e.target === e.currentTarget) {
    e.currentTarget.style.display = 'none';
  }
});

标签: js
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js 实现分页

js 实现分页

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

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…