当前位置: 首页 > news >正文

在 Vue 3 中实现刮刮乐抽奖

🎉 在 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><StratchCardmaskColor="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来禁用插件

相关文章:

  • 牛客练习赛138
  • PTA:jmu-ds-拓扑排序
  • JDBC链接数据库
  • 程序代码篇---Python视频流
  • OrangePi Zero 3学习笔记(Android篇)5 - usbutils编译(更新lsusb)
  • DVWA靶场Cryptography模块medium不看原码做法
  • kubectl top 查询pod连接数
  • Go基于plugin的热更新初体验
  • 【赵渝强老师】TiDB SQL层的工作机制
  • 数据分析2
  • 物联网、数字化工厂与智能智慧技术未来发展方向
  • 光的本质(以暗物质维度粒子为介质的能量传导)
  • Kubernetes应用发布方式完整流程指南
  • Java代理
  • ERP学习(二):用友软件产品之系统管理
  • 网络原理(Java)
  • 文生视频模型速读:LTX-Video
  • [ctfshow web入门] web67
  • SolidWork-2023 鼠標工程
  • 宝塔服务安装使用的保姆级教程
  • “犍陀罗艺术与亚洲文明”在浙大对外展出
  • 匈牙利史专家阚思静逝世,享年87岁
  • 第19届威尼斯建筑双年展开幕,中国案例呈现“容·智慧”
  • 浙江一民企拍地后遭政府两次违约,“民告官”三年又提起民事诉讼
  • 见微知沪|优化营商环境,上海为何要当“细节控”自我加压?
  • 咖啡戏剧节举办第五年,上生新所“无店不咖啡,空间皆可戏”