挑战用React封装100个组件【010】

Hello,大家好,今天我挑战的组件是这样的!
演示图片
今天这个组件是一个打卡成功,或者获得徽章后的组件。点击按钮后,会弹出礼花。项目中的勋章是我通过AI生成的,还是很厉害的哈!稍微抠图直接使用。最后面,我也会展示我的提示词,大家可以去试一试。
欢迎大家把项目拉下来使用哦!
项目地址: https://github.com/hismeyy/react-component-100
今天还是用到了canvas-confetti。它是一个可以喷射礼花的一个库,GitHub地址我放在了下方,地址中有它的使用教程呢!
canvas-confetti
如果大家有什么询问的,或者推荐做的组件,可以评论区,评论哦!
下面是代码展示

代码展示

SuccessCard.tsx
import confetti from "canvas-confetti";
import "./SuccessCard.css";
import medalPNG from "./medal.png";

const SuccessCard = () => {
  // 触发烟花效果的函数
  const triggerConfetti = (event: React.MouseEvent<HTMLButtonElement>) => {
    const button = event.currentTarget;
    const rect = button.getBoundingClientRect();
    const x = (rect.left + rect.width / 2) / window.innerWidth;
    const y = rect.top / window.innerHeight;

    confetti({
      particleCount: 200,     
      angle: 90,              
      spread: 90,           
      origin: { x, y }, 
      scalar: 1.5,            
    });
  };

  return (
    <div className="success-card">
      <div className="success-medal">
        <img src={medalPNG} alt="success-medal" />
      </div>
      <div className="success-message">
        <h1>Congratulations</h1>
        <p>You did a great job in the test!</p>
      </div>
      <div className="success-button">
        <button onClick={triggerConfetti}>Continue</button>
      </div>
    </div>
  );
};

export default SuccessCard;

SuccessCard.css
.success-card {
    width: 450px;
    height: 500px;
    display: flex;
    align-items: center;
    background-color: #F5F5F5;
    border-radius: 10px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
    flex-direction: column
}

.success-card .success-medal {
    margin-top: 10px;
    width: 300px;
    height: 300px;
    overflow: hidden;
}

.success-card .success-medal img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.success-card .success-message {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: 10px;
}

.success-card .success-message h1 {
    all: unset;
    font-size: 36px;
    font-weight: bold;
}

.success-card .success-message p {
    all: unset;
    margin-top: 15px;
    font-size: 16px;
    color: #7c7c7c;
}

.success-card .success-button {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.success-card .success-button button {
    all: unset;
    padding: 15px 30px;
    border-radius: 25px;
    background-color: #5246CF;
    color: #fff;
    cursor: pointer;
}

.success-card .success-button button:hover {
    background-color: #3f34b9;
}

使用

App.tsx
import './App.css'
import SuccessCard from './components/card/successCard01/SuccessCard';

function App() {

  return (
    <SuccessCard />
  );
}

export default App;

提示词

用于生成徽章,大家可以修改提示词,得到自己想要的一组徽章

这是一枚设计简洁的奖章图标,主体是黄色的八角形,中间有一颗白色的五角星,奖章下方有两条蓝色的飘带。
1. **设计风格**
   - 简洁设计
   - 卡通风格
   - 扁平设计
2. **形状和颜色**
   - 黄色八角形
   - 白色五角星
   - 蓝色飘带
3. **背景元素**
   - 纯色
4. **用途和氛围**
   - 奖励图标
   - 庆祝氛围

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/930207.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Liunx篇】基础开发工具 - yum

文章目录 &#x1f335;一.Liunx下安装软件的方案&#x1f43e;1.源代码安装&#x1f43e;2.rpm包安装&#x1f43e;3.包管理器进行安装 &#x1f335;二.软件包管理器-yum&#x1f335;三.yum的具体操作&#x1f43e;1.查看软件包&#x1f43e;2.安装软件包&#x1f43e;3.卸载…

MongoDB的简单使用

MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档&#xff1a;SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法&#xff1a; db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…

【射频IC进阶实践教程】2.6 LNA版图设计及DRC/LVS验证

射频集成电路的版图设计非常关键&#xff0c;他对寄生参数非常敏感&#xff0c;需要使其最小化。还需要注意相互耦合的方式本次课程主要介绍射频IC的一些相关布局和连线方面的考虑。 一、版图设计 1. 版图的元件布局 首先打开对应的原理图 点击进行版图设计 由于已经有做好的…

go语言的sdk项目搭建与git 操作标签tag并推送至远程仓库

在搭建 SDK 项目并结合 Git 操作标签&#xff08;Tag&#xff09;时&#xff0c;通常会涉及项目初始化、版本管理、Git 标签的创建与管理等内容。以下是一个完整的步骤指南&#xff0c;帮助您搭建 SDK 项目并学习如何使用 Git 标签。 ### 1. **搭建 SDK 项目** 首先&#xff…

超融合承载 PostgreSQL 数据库和 AI 系统的性能评测|金融行业实践

随着人工智能技术的日渐成熟&#xff0c;不少金融用户也开发了自己的 AI 应用系统&#xff0c;协助实际业务中诸如文字识别、图像转换、信息录入等工作&#xff0c;提升业务效率。不过&#xff0c;AI 应用系统普遍依赖 GPU 提供强大算力&#xff0c;对底层存储的性能也有较高的…

数据结构代码归纳

线性表 线性表的顺序表示 定义与初始化 typedef struct SqList{ElemType data[MaxSize];//ElemType *data 开动态数组 int length; }Sqlist; void InitList(SqList &L){L.length0;//若静态数组//若动态数组 //L.data(ElemType*)malloc(sizeof(ElemType)*MaxSize); } …

华为的USG6000为什么不能ping通

前言&#xff1a; 防火墙usg6000v的镜像 链接: https://pan.baidu.com/s/1uLRk0-hnHRTLYLx1Pnplow?pwdtymp 提取码: tymp 看了好多毒文章&#xff0c;感觉写作业更有意思&#xff0c;可以了解新的知识 内容&#xff1a; 首先看毒文章是这样说的&#xff0c;华为的防火墙是…

“量子跃迁与数据织网:深入探索K最近邻算法在高维空间中的优化路径、神经网络融合技术及未来机器学习生态系统的构建“

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

VTK编程指南<三>:基于VTK入门程序解析来理解VTK基础知识

1、VTK入门程序 下面是一个完整的Vtk入门程序&#xff0c;我们基于这个程序来对VTK的基本知识进行一个初步了解。 #include <iostream>#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2 VTK_MODULE_INI…

汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动

故障现象 一辆2007款宝马650i车&#xff0c;搭载N62B48B发动机&#xff0c;累计行驶里程约为26万km。车主反映&#xff0c;发动机偶尔无法起动&#xff0c;故障频率较低&#xff0c;十几天出现1 次&#xff0c;且故障出现时起动机不工作。 故障诊断  接车后试车&#xff0c;…

Kafka单机及集群部署及基础命令

目录 一、 Kafka介绍1、kafka定义2、传统消息队列应用场景3、kafka特点和优势4、kafka角色介绍5、分区和副本的优势6、kafka 写入消息的流程 二、Kafka单机部署1、基础环境2、iptables -L -n配置3、下载并解压kafka部署包至/usr/local/目录4、修改server.properties5、修改/etc…

python中的列表、元组、字典的介绍与使用

目录 一、区别介绍 1.使用场景以及区别图 2.详细介绍 列表 元组 字典 二、例子操作 (一)列表list 1.定义和初始化 2.访问元素&#xff08;下标&#xff09; 3.修改元素&#xff08;下标&#xff09; 4.添加元素&#xff08;append、下标insert&#xff09; 5.删除…

WiFi受限不再愁,电脑无网络快速修复指南

有时在试图连接WiFi时&#xff0c;会发现网络连接受限&#xff0c;或无法正常访问互联网。这种情况不仅影响了工作效率&#xff0c;还可能错过重要的信息。那么&#xff0c;究竟是什么原因导致了电脑WiFi连接受限呢&#xff1f;又该如何解决这一问题呢&#xff1f;小A今天就来教…

【技巧】Mac上如何显示键盘和鼠标操作

在制作视频教程时&#xff0c;将键盘和鼠标的操作在屏幕上显示出来&#xff0c;会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话&#xff0c;可以从Github上下载最…

c++ map对其值排序

无法直接排序,转换成vector<std::pair<string,int>> #include <iostream> #include <map> #include <vector> #include <algorithm>// 用于排序的比较函数 bool compareByValue(const std::pair<std::string, int>& a, const …

调度器、闲逛进程

调度器、闲逛进程 一、调度器/调度程序二、闲逛进程 一、调度器/调度程序 ②、③由调度程序引起&#xff0c;调度程序决定&#xff1a; 让谁运行&#xff1f;-- 调度算法 运行多长时间&#xff1f;-- 时间片大小 调度时机 – 什么事件会触发“调度程序”&#xff1f; ∙ \bull…

第七节(1)、T型加减速转动【51单片机-TB6600驱动器-步进电机教程】

摘要&#xff1a;本节介绍步进电机T型加减速的控制方法&#xff0c;分2个小节&#xff0c;本小节主要内容为该控制方法的推导与计算&#xff0c;第二节对T型加减速进行了简化计算 一.加速阶段计算 1.1 计算时间与步数关系 根据位移公式可得&#xff1a; a n g l e 0 n ∗ s…

利用 360 安全卫士极速版关闭电脑开机自启动软件教程

在使用电脑的过程中&#xff0c;过多的开机自启动软件会严重拖慢电脑的开机速度&#xff0c;影响我们的使用体验。本教程中简鹿办公将详细介绍如何使用 360 安全卫士极速版关闭电脑开机自启动软件&#xff0c;让您的电脑开机更加迅速流畅。 一、打开 360 安全卫士极速版 在电…

车联网安全学习之TBOX

Telematics BOX&#xff0c;简称 T-BOX&#xff0c;也称远程信息处理控制单元&#xff08;Telematics Control Unit, TCU&#xff09;&#xff0c;集成GPS、外部通信接口、电子处理单元、微控制器、移动通信单元和存储器等功能模块。 TBOX 提供的功能有网络接入、OTA、远程控制…

神经网络入门实战:(六)PyTorch 中的实用工具 SummaryWriter 和 TensorBoard 的说明

(一) SummaryWriter 这里先讲解 SummaryWriter &#xff0c;TensorBoard 会在第二大点进行说明。 SummaryWriter 是 PyTorch 中的一个非常实用的工具&#xff0c;它主要用于将深度学习模型训练过程中的各种日志和统计数据记录下来&#xff0c;并可以与 TensorBoard 配合使用&am…