当前位置:首页 > 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;
}

透明度控制

实现半透明遮盖效果:

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

图片模糊遮罩

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

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

点击关闭遮罩

为遮罩添加交互功能:

js实现遮盖

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

标签: js
分享给朋友:

相关文章

js实现dh

js实现dh

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

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…