当前位置:首页 > 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 属性绘制阴影。

js实现阴影

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 动态修改元素的阴影属性。

js实现阴影

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 关键字实现内阴影。

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

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

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js 实现倒计时

js 实现倒计时

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

js实现乘

js实现乘

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

js实现拷贝

js实现拷贝

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

js jquery

js jquery

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

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…