前言
最近在我司的工作中,摸鱼的时间愈发稀少。刚入职时,只需写几行代码,借助前辈们留下的“恩惠”,就能秒杀任务。而最近两周,开始参与更多的技术评审和完整的新需求,工作量陡然上升。同时,由于自己gap了一阵子没深度参与需求开发,缺乏规划,慢慢地“班味”又有些上来了。
所以在这里对平时对工作内容中涉及的一些技术方案做一些回顾,包括上一期的UI组件搭建之后也会同步。
使用 Canvas Confetti 实现炫酷的撒花效果
Canvas Confetti 简介
是什么?
Canvas Confetti 是一个轻量级的 JavaScript 库,用于在网页中实现动态、炫酷的撒花动画效果。其基于 HTML5 Canvas API,提供了高性能和极其灵活的定制能力。
有什么特点?
- 轻量高效:仅依赖 Canvas,库的体积非常小,性能表现优异。
- 高度可定制:支持多种粒子样式、动画方向、颜色和数量。
- 即插即用:只需几行代码即可实现基础撒花效果。
- 响应式兼容:在 PC 和移动端都表现流畅。
用户故事
公司原本用了
vue-confetti-explosion这个经过Vue3封装的组件库,为了实现更丰富的效果以及更高的灵活性,于是采用了Canvas Confetti
官方资源
- GitHub 项目地址:Canvas Confetti
- 在线示例网站:Canvas Confetti Demo
如何使用 Canvas Confetti 实现撒花效果
接下来,我们将通过一个完整的案例,从零开始实现撒花动画。包括从安装到定制效果,一步步拆解。
1. 安装库
如果项目使用的是现代化的构建工具(如 Vite、Webpack),可以通过 npm 安装 Canvas Confetti:
npm install canvas-confetti
如果直接在 HTML 中引入,也可以通过 CDN 使用:
<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.6.0/dist/confetti.browser.min.js"></script>
2. 基础撒花效果
以下是一个简单的撒花动画示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Canvas Confetti 示例</title>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f3f4f6;
}
button {
padding: 12px 24px;
font-size: 16px;
cursor: pointer;
border: none;
border-radius: 4px;
background-color: #4caf50;
color: white;
}
</style>
</head>
<body>
<button id="celebrateButton"