当前位置:首页 > JavaScript

js实现阴影层

2026-04-07 07:08:05JavaScript

使用 CSS box-shadow 属性实现阴影层

通过 CSS 的 box-shadow 属性可以轻松为元素添加阴影效果。在 JavaScript 中动态设置该属性:

const element = document.getElementById('targetElement');
element.style.boxShadow = '2px 2px 10px rgba(0, 0, 0, 0.3)';

参数说明:

  • 前两个值控制阴影偏移(水平/垂直)
  • 第三个值控制模糊半径
  • 最后一个值控制颜色和透明度

创建独立阴影层元素

如需更复杂的阴影效果,可创建独立的阴影层元素:

js实现阴影层

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

使用 Canvas 绘制高级阴影

对于需要特殊形状的阴影,可使用 Canvas API:

const canvas = document.createElement('canvas');
canvas.width = 300;
canvas.height = 200;
const ctx = canvas.getContext('2d');

ctx.shadowColor = 'rgba(0, 0, 0, 0.7)';
ctx.shadowBlur = 15;
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.fillStyle = '#fff';
ctx.fillRect(30, 30, 100, 100);

使用 CSS 滤镜实现阴影

CSS 的 filter 属性提供另一种阴影实现方式:

js实现阴影层

const element = document.querySelector('.shadow-element');
element.style.filter = 'drop-shadow(4px 4px 8px rgba(0,0,0,0.5))';

动态调整阴影参数

通过 JavaScript 可以动态调整阴影参数实现交互效果:

let blurLevel = 0;
const element = document.getElementById('interactive-shadow');

function updateShadow() {
  blurLevel += 1;
  element.style.boxShadow = `0 0 ${blurLevel}px rgba(0,0,0,0.5)`;
  if(blurLevel < 20) requestAnimationFrame(updateShadow);
}
updateShadow();

移除阴影层

移除阴影层或阴影效果的方法:

// 移除box-shadow
element.style.boxShadow = 'none';

// 移除独立阴影层
if(shadowLayer.parentNode) {
  shadowLayer.parentNode.removeChild(shadowLayer);
}

标签: 阴影js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js 实现倒计时

js 实现倒计时

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

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…