当前位置:首页 > JavaScript

js实现阴影层

2026-02-02 13:34:37JavaScript

使用CSS box-shadow属性

在JavaScript中动态添加阴影效果可以通过修改元素的style.boxShadow属性实现。该方法直接操作CSS属性,适用于简单阴影效果。

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

参数说明:

  • 前两个值控制阴影偏移(X轴和Y轴)
  • 第三个值控制模糊半径
  • 第四个值控制阴影颜色和透明度

通过类名切换实现阴影

定义CSS类包含阴影样式,通过JavaScript切换类名实现阴影效果。

js实现阴影层

.shadow-effect {
  box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}
document.getElementById('targetElement').classList.add('shadow-effect');

创建自定义阴影层元素

对于需要独立控制的复杂阴影效果,可以创建专门的阴影层元素。

function createShadowLayer(target) {
  const shadow = document.createElement('div');
  shadow.style.position = 'absolute';
  shadow.style.width = '100%';
  shadow.style.height = '100%';
  shadow.style.boxShadow = 'inset 0 0 10px #000';
  shadow.style.pointerEvents = 'none';
  target.style.position = 'relative';
  target.appendChild(shadow);
}

使用Canvas绘制高级阴影

需要更复杂的阴影效果时,可以使用Canvas API绘制。

js实现阴影层

const canvas = document.createElement('canvas');
canvas.width = 300;
canvas.height = 150;
const ctx = canvas.getContext('2d');
ctx.shadowColor = 'rgba(0,0,0,0.5)';
ctx.shadowBlur = 15;
ctx.shadowOffsetX = 10;
ctx.shadowOffsetY = 10;
ctx.fillStyle = '#ffffff';
ctx.fillRect(30, 30, 100, 100);
document.body.appendChild(canvas);

响应式阴影效果

结合事件监听实现交互式阴影效果。

const element = document.getElementById('interactiveElement');
element.addEventListener('mousemove', (e) => {
  const x = e.offsetX / element.offsetWidth * 20;
  const y = e.offsetY / element.offsetHeight * 20;
  element.style.boxShadow = `${x}px ${y}px 10px rgba(0,0,0,0.3)`;
});

多阴影叠加效果

通过逗号分隔实现多重阴影效果。

const element = document.getElementById('multiShadowElement');
element.style.boxShadow = `
  0 1px 3px rgba(0,0,0,0.12),
  0 1px 2px rgba(0,0,0,0.24)
`;

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

相关文章

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-contain…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…