更新记录
1.0.1(2024-10-31) 下载此版本
修复部分兼容问题
1.0.0(2024-10-31) 下载此版本
hello plugin
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.26 | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | √ | × | √ | × | × |
说明
这是一个使用 canvas 模拟抽奖刮卡的小组件,支持自定义尺寸、自定义涂层样式、自定义刮卡进度等等
基础用法
监听 begin
事件来加载奖品,使用 goods
插槽来展示奖品
<vshen-scraper @begin="">
<template #goods>
<view>刮开后可见的内容</view>
</template>
</vshen-scraper>
= ({done}) => {
// 这个事件里可以加载奖品,加载完成后调用 done 方法即可进入刮卡阶段
done()
}
组件属性
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
handler-text | 开始刮卡的按钮文本 | string | Start |
eraser-size | 刮卡时候的擦除范围 | int | 20 |
mask | 刮卡涂层图片地址,支持网络图片和本地图片 | string | 默认样式 |
min | 刮去的区域占比到某个值时视为刮卡完成,刮卡完成后会自动隐藏剩余涂层,去值 0 ~ 1,比如0.6即60% | int | 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
属性传递一张自己的涂层图片,本地图片和网络图片都可以