在 Vue 3 中实现刮刮乐抽奖

news2025/5/11 20:29:26

🎉 在 Vue 3 中实现刮刮乐抽奖

当项目中需要做一些活动互动页时,需要实现刮刮乐,请看如下效果:

这里感谢github用户Choicc分享的组件,具体可点击传送门查看

1. 引入组件

将/src/components下ScratchCard.vue复制到自己的项目中,
在需要使用组件的页面中引入

<script setup>
import StratchCard from "./components/StratchCard.vue";
const scratchStart = ()=>{
  console.log('scratchStart')
}
const scratchEnd = ()=>{
  console.log('scratchEnd')
}
const scratchAll = ()=>{
  console.log('scratchAll')
}
</script>

<template>
  <StratchCard
    maskColor="skyblue"
    fillStyle="red"
    font="30px 微软雅黑"
    text="刮一刮文字"
    :radius="5"
    :scratchRadius="20"
    :scratchPercent="80"
    @scratchStart="scratchStart"
    @scratchEnd="scratchEnd"
    @scratchAll="scratchAll"
  >
    <!-- 自定义奖品内容插槽 -->
    <div class="prize">我的奖品</div>
  </StratchCard>
</template>
<style scoped>
* {
  margin: 0;
  padding: 0;
}
.prize {
  width: 80vw;
  height: 45vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background: lightcoral;
}
</style>

⬇️ 对应的参数说明

参数名说明类型默认值备注
maskColor刮奖图层背景颜色String'#cccccc'imageUrl 非空时会被覆盖
text刮奖图层文字String'刮一刮'imageUrl 非空时会被覆盖
fillStyle刮奖图层文字颜色String'#000000'-
font刮奖图层字体String'18px Arial'-
imageUrl刮奖图层使用图片String-会覆盖掉刮奖图层文字
radius刮奖图层圆角Number0-
scratchRadius刮奖半径Number10刮奖时每次可刮的区域半径
scratchPercent刮开占比Number80刮开面积达到该百分比后自动移除刮奖图层

⬇️ events事件如下

事件名说明备注
scratchStart开始刮卡时手指触控或鼠标按下时触发
scratchEnd刮卡结束时手指离开或鼠标抬起时触发
scratchAll刮光全部时刮刮卡被刮完时触发

⬇️ methods

方法名说明备注
reset重置刮刮乐stratchCardRef.value?.reset()

我在基础上加了两个参数disableddefaultRemove

参数名说明类型默认值备注
disabled禁用刮奖Booleanfalse
defaultRemove是否显示图层Booleanfalse

像我上面实现的效果来说,默认是没有蒙层的,需要点击开始洗牌后才会出现蒙层,这个时候需要加上defaultRemove来控制蒙层的显示隐藏,
当开始刮其中一个刮刮乐不能再刮其他的,或者说要刮完某一个才能继续下一个,这个时候需要使用disabled来禁用插件

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

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

相关文章

Satori:元动作 + 内建搜索机制,让大模型实现超级推理能力

Satori&#xff1a;元动作 内建搜索机制&#xff0c;让大模型实现超级推理能力 论文大纲一、背景&#xff1a;LLM 推理增强的三类方法1. 基于大规模监督微调&#xff08;SFT&#xff09;的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二…

SDC命令详解:使用all_outputs命令进行查询

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html all_outputs命令用于创建一个输出端口对象集合&#xff0c;关于设计对象和集合的更详细介绍&#xff0c;可以参考下面的博客。 Synopsys&#xff1a;设计对象https://chenzhang.blog.csdn…

printf调试时候正常,运行时打印不出来

问题是在添加了 printf 功能后&#xff0c;程序独立运行时无法正常打印输出&#xff0c;而调试模式下正常。这表明问题可能与 printf 的重定向实现、标准库配置、或编译器相关设置有关。 解决&#xff1a; 原来是使用 Keil/IAR&#xff0c;printf可能需要启用 MicroLIB 或正确…

解决 TimeoutError: [WinError 10060] 在 FramePack项目中连接 Hugging Face 超时的问题

#工作记录 以下是针对 TimeoutError: [WinError 10060] 的完整排查方案&#xff0c;适用于 FramePack项目中。 &#xff08;一般该错误的发生原因请重点排查Hugging Face模型仓库受限需要登录的情形&#xff09; FramePack项目参考资料 FramePack部署&#xff08;从PyCharm解…

分布式-Redis分布式锁

Redis实现分布式锁优点 &#xff08;1&#xff09;Redis有很高的性能&#xff1b; &#xff08;2&#xff09;Redis命令对此支持较好&#xff0c;实现起来比较方便 实现思路 &#xff08;1&#xff09;获取锁的时候&#xff0c;使用setnx加锁&#xff0c;并使用expire命令为锁…

UniRepLknet助力YOLOv8:高效特征提取与目标检测性能优化

文章目录 一、引言二、UniRepLknet 的框架原理&#xff08;一&#xff09;架构概述&#xff08;二&#xff09;架构优势 三、UniRepLknet 在 YOLOv8 中的集成&#xff08;一&#xff09;集成方法&#xff08;二&#xff09;代码实例 四、实验与对比&#xff08;一&#xff09;对…

自研时序大模型讲解(4月29日)直播回顾

4 月 29 日&#xff0c;清华团队揭秘&#xff1a;时序大模型如何让数据“活”起来线上直播圆满结束。清华大学软件学院博士生&#xff0c;IoTDB 原生机器学习引擎 AINode 研发同学刘雍在线上面向数千人次的时序数据分析人员与 AI 大模型行业关注者&#xff0c;就时序大模型的发…

k8s之ingress解释以及k8s创建业务的流程定义

matchLabels ingress Ingress 是反向代理规则&#xff0c;用来规定 HTTP/S 请求应该被转发到哪个 Service 上&#xff0c;比如根据请求中不同的 Host 和 url 路径让请求落到不同的 Service 上。 Ingress Controller 就是一个反向代理程序&#xff0c;它负责解析 Ingress 的反向…

从0开始学习大模型--Day05--理解prompt工程

提示词工程原理 N-gram&#xff1a;通过统计&#xff0c;计算N个词共同出现的概率&#xff0c;从而预测下一个词是什么。 深度学习模型&#xff1a;有多层神经网络组成&#xff0c;可以自动从数据中学习特征&#xff0c;让模型通过不断地自我学习不断成长&#xff0c;直到模型…

计算机视觉——基于树莓派的YOLO11模型优化与实时目标检测、跟踪及计数的实践

概述 设想一下&#xff0c;你在多地拥有多个仓库&#xff0c;要同时监控每个仓库的实时状况&#xff0c;这对于时间和精力而言&#xff0c;都构成了一项艰巨挑战。从成本和可靠性的层面考量&#xff0c;大规模部署计算设备也并非可行之策。一方面&#xff0c;大量计算设备的购…

【计算机视觉】OpenCV项目实战:OpenCV_Position 项目深度解析:相机定位技术

OpenCV_Position 项目深度解析&#xff1a;基于 OpenCV 的相机定位技术 一、项目概述二、技术原理&#xff08;一&#xff09;单应性矩阵&#xff08;Homography&#xff09;&#xff08;二&#xff09;算法步骤&#xff08;三&#xff09;相机内参矩阵 三、项目实战运行&#…

LAMMPS分子动力学基于周期扰动法的黏度计算

关键词&#xff1a;黏度,周期扰动法&#xff0c;SPC/E水分子&#xff0c;分子动力学&#xff0c;lammps 目前分子动力学计算黏度主要有以下方法&#xff1a;&#xff08;1&#xff09;基于 Green - Kubo 关系的方法。从微观角度出发&#xff0c;利用压力张量自相关函数积分计算…

unity通过transform找子物体只能找子级

unity通过transform找子物体只能找子级&#xff0c;孙级以及更低级别都找不到&#xff0c;只能找到自己的下一级 如果要获取孙级以下的物体&#xff0c;最快的方法还是直接public挂载

ThinkPad T440P如何从U盘安装Ubuntu24.04系统

首先制作一个安装 U 盘。我使用的工具是 Rufus &#xff0c;它的官网是 rufus.ie &#xff0c;去下载最新版就可以了。直接打开这个工具&#xff0c;选择自己从ubuntu官网下载Get Ubuntu | Download | Ubuntu的iso镜像制作U盘安装包即可。 其次安装之前&#xff0c;还要对 Thi…

嵌入式开发学习(阶段二 C语言基础)

C语言&#xff1a;第05天笔记 内容提要 分支结构 条件判断用if语句实现分支结构用switch语句实现分支结构 分支结构 条件判断 条件判断&#xff1a;根据某个条件成立与否&#xff0c;决定是否执行指定的操作。 条件判断的结果是逻辑值&#xff0c;也就是布尔类型值&#…

从人体姿态到机械臂轨迹:基于深度学习的Kinova远程操控系统架构解析

在工业自动化、医疗辅助、灾难救援与太空探索等前沿领域&#xff0c;Kinova轻型机械臂凭借7自由度关节设计和出色负载能力脱颖而出。它能精准完成物体抓取、复杂装配和精细操作等任务。然而&#xff0c;实现人类操作者对Kinova机械臂的直观高效远程控制一直是技术难题。传统远程…

NX949NX952美光科技闪存NX961NX964

NX949NX952美光科技闪存NX961NX964 在半导体存储领域&#xff0c;美光科技始终扮演着技术引领者的角色。其NX系列闪存产品线凭借卓越的性能与创新设计&#xff0c;成为数据中心、人工智能、高端消费电子等场景的核心组件。本文将围绕NX949、NX952、NX961及NX964四款代表性产品…

【Bootstrap V4系列】学习入门教程之 组件-输入组(Input group)

Bootstrap V4系列 学习入门教程之 组件-输入组&#xff08;Input group&#xff09; 输入组&#xff08;Input group&#xff09;Basic example一、Wrapping 包装二、Sizing 尺寸三、Multiple addons 多个插件四、Button addons 按钮插件五、Buttons with dropdowns 带下拉按钮…

VS “筛选器/文件夹”

每天学习一个VS小技巧&#xff1a; 我在VS创建筛选器的时候&#xff0c;想要想要同步计算机上的文件目录&#xff0c;但是发现并未 同步。 例如我在这儿创建了一个筛选器IoManager 但是在UI这个文件夹里并未创建对应的IoManager文件夹 我右击也没有打开文件所在位置 然后我…

powerbuilder9.0中文版

经常 用这个版本号写小软件,非常喜欢这个开发软件 . powerbuilder9.0 非常的小巧,快捷,功能强大,使用方便. 我今天用软件 自己汉化了一遍&#xff0c;一些常用的界面都已经翻译成中文。 我自己用的&#xff0c;以后有什么界面需要翻译&#xff0c;再更新一下。 放在这里留个…