当前位置:首页 > JavaScript

js实现阴影

2026-03-15 02:39:39JavaScript

使用 box-shadow 属性

通过 CSS 的 box-shadow 属性可以为元素添加阴影效果。

.box {
  box-shadow: 10px 10px 5px rgba(0, 0, 0, 0.3);
}
  • 参数说明
    • 前两个值(10px 10px)表示阴影的水平和垂直偏移。
    • 第三个值(5px)表示阴影的模糊半径。
    • 最后一个值(rgba(0, 0, 0, 0.3))表示阴影的颜色和透明度。

使用 text-shadow 属性

为文本添加阴影效果,可以通过 text-shadow 实现。

.text {
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}
  • 参数说明
    • 前两个值(2px 2px)表示阴影的水平和垂直偏移。
    • 第三个值(4px)表示模糊半径。
    • 最后一个值(rgba(0, 0, 0, 0.5))表示阴影颜色和透明度。

使用 Canvas 绘制阴影

在 Canvas 中可以通过 shadowOffsetXshadowOffsetYshadowBlurshadowColor 属性绘制阴影。

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.shadowBlur = 4;
ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
ctx.fillStyle = 'blue';
ctx.fillRect(20, 20, 100, 100);

使用 SVG 实现阴影

在 SVG 中可以通过 <filter><feDropShadow> 元素实现阴影效果。

<svg width="200" height="200">
  <filter id="shadow">
    <feDropShadow dx="3" dy="3" stdDeviation="2" flood-color="rgba(0, 0, 0, 0.5)"/>
  </filter>
  <rect x="20" y="20" width="100" height="100" fill="blue" filter="url(#shadow)"/>
</svg>

动态调整阴影(JavaScript 控制)

通过 JavaScript 动态修改元素的阴影属性。

const element = document.querySelector('.box');
element.style.boxShadow = '5px 5px 10px rgba(0, 0, 0, 0.4)';

可以结合事件(如鼠标悬停)动态调整阴影。

element.addEventListener('mouseover', () => {
  element.style.boxShadow = '15px 15px 20px rgba(0, 0, 0, 0.6)';
});

多层阴影效果

通过逗号分隔多个 box-shadow 值实现多层阴影。

.multi-shadow {
  box-shadow: 
    3px 3px 5px rgba(0, 0, 0, 0.2),
    6px 6px 10px rgba(0, 0, 0, 0.1);
}

内阴影效果

使用 inset 关键字实现内阴影。

js实现阴影

.inset-shadow {
  box-shadow: inset 3px 3px 5px rgba(0, 0, 0, 0.3);
}

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

相关文章

js 实现vue模板

js 实现vue模板

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

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js 实现倒计时

js 实现倒计时

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

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…