更新记录
1.0.2(2024-12-11) 下载此版本
修改readme部分描述错误
1.0.1(2024-10-31) 下载此版本
修复部分兼容问题
1.0.0(2024-10-31) 下载此版本
hello plugin
查看更多平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
说明
这是一个使用 canvas 模拟抽奖刮卡的小组件,支持自定义尺寸、自定义涂层样式、自定义刮卡进度等等
基础用法
监听 begin 事件来加载奖品,使用 goods 插槽来展示奖品
<vshen-scraper @begin="begin">
<template #goods>
<view>刮开后可见的内容</view>
</template>
</vshen-scraper>
function begin({done}) {
// 这个事件里可以加载奖品,加载完成后调用 done 方法即可进入刮卡阶段
done()
}
组件属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| handler-text | 开始刮卡的按钮文本 | string | Start |
| eraser-size | 刮卡时候的擦除范围 | int | 20 |
| mask | 刮卡涂层图片地址,支持网络图片和本地图片 | string | 默认样式 |
| min | 刮取的区域占比到某个值时视为刮卡完成,刮卡完成后会自动隐藏剩余涂层,取值 0 ~ 1,比如0.6即60% | float | 0.6 |
组件插槽
| 插槽名 | 说明 |
|---|---|
| handler | 开始按钮,默认的开始是一个红色按钮,可以通过这个插槽来自定义样式 |
| goods | 奖品内容,即刮开后展示的内容 |
组件事件
| 属性名 | 参数 | 类型 |
|---|---|---|
| begin | {done: function} | 点击开始按钮后触发该事件,开发者需要监听该事件并加载商品,之后主动调用 done 方法即可进入刮卡阶段 |
| ready | canvas 画布初始化完成,该事件触发后表示可以开始刮卡 | |
| completed | float | 刮卡完成事件,参数是刮卡进度,范围是 0 ~ 1 |
| failed | string | canvas 画布初始化失败,可能是环境不兼容、涂层加载失败等等,参数是错误信息 |
设置刮卡尺寸
组件会自动适配父容器的尺寸,所以不需要调整组件本身的宽高,只要设置好父容器的尺寸即可
跳过开始按钮
开发者可以通过 ref 方式主动调用组件的 begin 方法来跳过开始按钮节点,该方法调用后相当于点击了开始按钮
<vshen-scraper ref="scraper"></vshen-scraper>
mounted() {
this.$refs.scraper.begin()
}
已知的问题
默认涂层不加载
默认涂层是通过 base64 加载的图片,某些手机可能无法渲染(原因未知,有知道的小伙伴可以留言,我看到后会修复掉这个问题)
解决方法是通过 mask 属性传递一张自己的涂层图片,本地图片和网络图片都可以

收藏人数:
下载插件并导入HBuilderX
赞赏(1)
下载 77
赞赏 1
下载 10711025
赞赏 1797
赞赏
京公网安备:11010802035340号