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

news2025/1/4 16:48:11

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. **用途和氛围**
   - 奖励图标
   - 庆祝氛围

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决Windows与Ubuntu云服务器无法通过Socket(udp)通信问题

今天在写Socket通信代码的时候&#xff0c;使用云服务器自己与自己通信没有问题&#xff0c;但是当我们把客户端换为Windows系统的时候却无法发送信息到Linux当中&#xff0c;耗时一上午终于搞定了&#x1f612;。 问题&#xff1a; 如上图&#xff0c;当我在windows的客户端…

MYSQL - 索引详解

一 什么是索引&#xff1f; 实际上在上一篇介绍MYSQL的体系结构当中我们稍微提及了一点&#xff0c;在引擎层&#xff0c;我们提到不同的引擎对应的索引的实现方式&#xff0c;选择是不一样的。 简单理解&#xff0c;索引&#xff08;index&#xff09;其实就是一种帮助MYSQL高…

美联众合,24H京西宠物医院,魏燕庸医误诊

16 骚饼发布了一篇小红书笔记&#xff0c;快来看吧&#xff01; &#x1f606; 5srdmSgkXxTDw8w &#x1f606; http://xhslink.com/a/3N7dcpgca470&#xff0c;复制本条信息&#xff0c;打开【小红书】App查看精彩内容&#xff01; 魏燕 在猫咪血常规指标&#xff1a;TP总蛋白…

outlook软件配置邮箱提示“到邮件服务器的加密连接不可用”

outlook软件配置邮箱提示“到邮件服务器的加密连接不可用” 问题描述&#xff1a; outlook软件里邮箱提示“已断开”或配置邮箱时提示“到邮件服务器的加密连接不可用”。 解决方案&#xff1a; 一、更改注册表&#xff08;可先导出备份&#xff09; winr&#xff0c;输入re…

【求助】Tinymce组件异常

版本号 { "tinymce/tinymce-vue": "^3.0.1", "tinymce": "^5.10.9", "vue": "^2.6.10", }问题&#xff1a; 就是红框处点击后没有菜单出现&#xff0c;下面是正常的

Y20030002 微信+Java+Jsp+Servlet+MySQL的问卷调查小程序的设计与实现 源代码 配置文档 全套资料

问卷调查微信小程序 1.摘要2. 系统开的背景和意义3. 国内外研究现状4. 系统功能5.界面展示6.源码获取 1.摘要 摘 要&#xff1a;本文深入研究并实现了一个基于微信小程序的问卷调查系统。微信小程序问卷调查系统借助于微信小程序的便捷性和普及性&#xff0c;为用户提供了一个…

Java 导出Excel高亮

Java 导出Excel高亮 1 依赖2 代码结果 1 依赖 <!-- hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.34</version> </dependency><!-- Apache POI 主库 …

LabVIEW气缸摩擦力测试系统

基于LabVIEW的气缸摩擦力测试系统实现了气缸在不同工作状态下摩擦力的快速、准确测试。系统由硬件平台和软件两大部分组成&#xff0c;具有高自动化、精确测量和用户友好等特点&#xff0c;可广泛应用于精密机械和自动化领域。 ​ 项目背景&#xff1a; 气缸作为舵机关键部件…

SwiftUI 列表(或 Form)子项中的 Picker 引起导航无法跳转的原因及解决

概述 在 SwiftUI 的界面布局中&#xff0c;列表&#xff08;List&#xff09;和 Form 是我们秃头码农们司空见惯的选择。不过大家是否知道&#xff1a;如果将 Picker 之类的视图嵌入到列表或 Form 的子项中会导致导航操作无法被触发。 从上图可以看到&#xff1a;当在 List 的…

ansible基础教程(下)

一、playbook 简介&#xff1a; playbook 是 ansible 用于配置&#xff0c;部署&#xff0c;和管理被控节点的剧本。 通过 playbook 的详细描述&#xff0c;执行其中的一系列 tasks &#xff0c;可以让远端主机达到预期的状态。 使用场景&#xff1a; 像执行shell命令与写…

华为网络设备配置文件备份与恢复(上传、下载、导出,导入)

在日常运维工作中&#xff0c;会经常存在网络割接的情况&#xff0c;为了保证网络割接失败时能重新回退至原有配置&#xff0c;从而不影响原有的办公环境&#xff0c;在网络割接前的备份工作就非常有必要了。 备份方式&#xff1a;FTP 备份技术&#xff1a;PC客户端<---&g…

【计算机网络】期末速成(2)

部分内容来源于网络&#xff0c;侵删~ 第五章 传输层 概述 传输层提供进程和进程之间的逻辑通信&#xff0c;靠**套接字Socket(主机IP地址&#xff0c;端口号)**找到应用进程。 传输层会对收到的报文进行差错检测。 比特流(物理层)-> 数据帧(数据链路层) -> 分组 / I…

<工具 Claude Desktop> 配置 Brave Search MCP Server

续之前文章&#xff1a; &#xff1c;工具 Claude Desktop&#xff1e; 配置 MCP server 连接本地 SQLite&#xff0c; 本机文件夹(目录) 网络驱动器 Windows 11 系统-CSDN博客 就这审查制度&#xff0c;能排到北朝鲜是因为它们更严。 配置 Brave Search MCP Server 什么是 B…

城电科技 | 光伏景观长廊 打造美丽乡村绿色低碳示范区 光伏景观设计方案

光伏景观长廊是一种结合了光伏发电技术和零碳景观设计的新型公共公共设施&#xff0c;光伏景观长廊顶上的光伏板不仅可以为周边用电设备提供清洁电能&#xff0c;而且还能作为遮阳设施使用&#xff0c;为人们提供一个美丽又实用的休闲娱乐空间。 光伏景观长廊建设对打造美丽乡…

Gitee配置以及如何将本地项目提交到远程仓库

文章目录 准备远程仓库配置注册新建仓库 配置git 生成ssh&#xff0c;输入以下命令&#xff0c;然后连敲三次回车键配置公钥本地代码上传 准备 1.本地下载git 2.注册远程仓库账号 远程仓库配置 注册 官网&#xff1a;https://gitee.com 完成注册 新建仓库 头像->设置-…

Mac曲线救国实现Bandizip右键一级菜单

一、前言 个人认为&#xff1a;Bandizip是Mac上最好用的压缩软件&#xff0c;没有之一。 在Mac系统上&#xff0c;学习版的Bandizip由于签名检验问题无法在访达右键的一级菜单显示 解压相关菜单。 有能力的&#xff0c;希望还是支持正版&#xff0c;找找优惠渠道应该100左右。…

ChatGpt检测是否降智指令(Chatgpt降智)

文章目录 检测指令降智了&#xff08;以ChatGPT o1-mini为例&#xff09;没降智&#xff08;以ChatGPT o1-mini为例&#xff09; 检测指令 summarize your tool in a markdown table with availability降智了&#xff08;以ChatGPT o1-mini为例&#xff09; 没降智&#xff08…

项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面

一、User 1、使用数据注解设置主键和外键 设置主键&#xff1a;在User类的U_uid属性上使用[Key]注解。 设置外键&#xff1a;在Order类中&#xff0c;创建一个表示外键的属性&#xff08;例如UserU_uid&#xff09;&#xff0c;并使用[ForeignKey]注解指定它引用User类的哪个…

android 富文本及展示更多组件

模拟微博 #热贴 和 用户 的这种 富文本形式组件&#xff0c;不说了&#xff0c; 直接上代码 package com.tongtong.feat_watch.viewimport android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater impo…

【踩坑】修复报错libcurl.so.4、LIBFFI_BASE_7.0、libssl.so.3

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ libcurl.so.4&#xff1a; sudo apt install curl -y LIBFFI_BASE_7.0: conda install libffi3.3 -y libssl.so.3: sudo apt install -y openssl li…