抽奖组件 lucky-canvas 素材大全
⛔Warning文中素材取自互联网
仅供学习研究之用 , 切勿用于商业用途 , !
最近需要用到抽奖组件
本文的重点是分享实战项目中的抽奖组件及其对应的素材
大转盘
基础款
此处先给出基础款大转盘示例
const wheel_base = new LuckyCanvas.LuckyWheel('#wheel-base', {
width: '300px',
height: '300px',
blocks: [{ padding: '10px', background: '#617df2' }],
prizes: [
{ background: '#e9e8fe', fonts: [{ text: '0' }] },
{ background: '#b8c5f2', fonts: [{ text: '1' }] },
{ background: '#e9e8fe', fonts: [{ text: '2' }] },
{ background: '#b8c5f2', fonts: [{ text: '3' }] },
{ background: '#e9e8fe', fonts: [{ text: '4' }] },
{ background: '#b8c5f2', fonts: [{ text: '5' }] },
],
buttons: [{
radius: '35%',
background: '#8a9bf3',
pointer: true,
fonts: [{ text: '开始', top: '-10px' }]
}],
start: function () {
wheel_base.play()
setTimeout(() => {
wheel_base.stop()
}, 3000)
}
});代码中有三个核心配置
blocks配置组件的背景样式 可以使用 CSS 颜色。 也可以使用图片, 还可以叠加多个背景, 。 buttons配置转盘开始按钮样式 可以使用 CSS 颜色。 文字和图片、 多个配置可以叠加, 。 prizes配置奖品列表 可以使用文字和图片。 多项目配置可以叠加, 。
大家可以点击开始按钮体验抽奖效果
这个转盘虽然能用
仿中欧基金
中欧版转盘将素材分成三部分
| 背景 | 按键 | 奖品 |
|---|---|---|
该设计用图片承载所有样式
仿潘德妈妈
潘德款转盘素材与中欧款相似
| 背景 | 按键 | 奖品 |
|---|---|---|
这里的亮点是利用 javascript 动态生成深浅相间的奖品背景图
它把文字从奖品图片中分离了出来
仿京东
京东款跟潘德妈妈款几乎一样
| 背景 | 按键 | 奖品 |
|---|---|---|
✏️Notelucky-canvas 好像不能调整背景图与奖品图的 zIndex
所以此图中的指针被挡住了😂 ,
仿携程
携程款直接简单粗暴
| 背景 | 按键 | 奖品 |
|---|---|---|
仿哔哩哔哩
B
另外
| 背景 | 按键 | 奖品 |
|---|---|---|
以上是大转盘部分的内容
九宫格
九宫格顾名思义有九个格子
我们先说基础款
基础款
下面是基础九宫格抽奖组件xy
xy{0,1,2}(0,0),(1,0),(2,0),(2,1),(2,2),(1,2),(0,2),(0,1) 共八个位置放置奖品(1,1)
const grid_base = new LuckyCanvas.LuckyGrid('#grid-base', {
width: '300px',
height: '300px',
blocks: [
{ padding: '10px', background: '#869cfa' },
{ padding: '10px', background: '#e9e8fe' },
],
prizes: [
{ x: 0, y: 0, fonts: [{ text: '', }] },
{ x: 1, y: 0, fonts: [{ text: '', }] },
{ x: 2, y: 0, fonts: [{ text: '', }] },
{ x: 2, y: 1, fonts: [{ text: '', }] },
{ x: 2, y: 2, fonts: [{ text: '', }] },
{ x: 1, y: 2, fonts: [{ text: '', }] },
{ x: 0, y: 2, fonts: [{ text: '', }] },
{ x: 0, y: 1, fonts: [{ text: '', }] },
],
buttons: [{
x: 1, y: 1,
background: '#7f95d1',
fonts: [{ text: '开始', top: '35%' }]
}],
defaultStyle: {
background: '#b8c5f2'
},
start: function() {
grid_base.play()
setTimeout(() => {
grid_base.stop()
}, 3000)
},
end: function(prize) {
// alert(' 恭喜中奖: ' + prize.fonts[0].text)
}
});上面的代码执行效果如下
以上是九宫格模式
圆形款
说实话
下面代码中 x/y 对应的计算应该就是在调整位置
const z = 60, // 格子细分数
s = 12, // 格子大小
m = 18, // y 轴偏移量
n = 9, // x 轴偏移量
k = 2.8 // 按钮放大的倍数
const grid_base_circle = new LuckyCanvas.LuckyGrid('#grid-base-circle', {
width: '300px',
height: '300px',
rows: z,
cols: z,
blocks: [
{ padding: '10px', background: '#869cfa', borderRadius: Infinity },
{ padding: '10px', background: '#e9e8fe', borderRadius: Infinity },
],
prizes: [
{ x: z / 2 - s / 2, y: 0, col: s, row: s },
{ x: z - m - s / 2, y: n - s / 2, col: s, row: s },
{ x: z - n - s / 2, y: m - s / 2, col: s, row: s },
{ x: z - s, y: z / 2 - s / 2, col: s, row: s },
{ x: z - n - s / 2, y: z - m - s / 2, col: s, row: s },
{ x: z - m - s / 2, y: z - n - s / 2, col: s, row: s },
{ x: z / 2 - s / 2, y: z - s, col: s, row: s },
{ x: m - s / 2, y: z - n - s / 2, col: s, row: s },
{ x: n - s / 2, y: z - m - s / 2, col: s, row: s },
{ x: 0, y: z / 2 - s / 2, col: s, row: s },
{ x: n - s / 2, y: m - s / 2, col: s, row: s },
{ x: m - s / 2, y: n - s / 2, col: s, row: s },
],
buttons: [{
x: z / 2 - s / 2 * k, y: z / 2 - s / 2 * k, col: s * k, row: s * k,
fonts: [{ text: '开始', top: '43%' }]
}],
defaultStyle: {
borderRadius: Infinity,
background: '#bac5ee'
},
activeStyle: {
background: '#f7cf9f'
},
start: function() {
grid_base_circle.play()
setTimeout(() => {
grid_base_circle.stop()
}, 2000)
}
});说完了基础款
仿抖音
抖音版九宫格没有使用图片背景
所有奖品信息都使用一张图片展示
| 背景 | 按键 | 奖品 |
|---|---|---|
仿网易严选
网易严选基本跟抖音采用一样的策略
我个人认为这是比抖音方案更差的设计
| 背景 | 按键 | 奖品 |
|---|---|---|
仿网易游戏
终于网易游戏给出了一个像样的方案
| 背景 | 按键 | 奖品 |
|---|---|---|
仿新东方
新东方款跟前面的差不多
| 背景 | 按键 | 奖品 |
|---|---|---|
仿雪球
雪球跟网易严选一样
| 背景 | 按键 | 奖品 |
|---|---|---|
仿好未来
好未来的方案跟网易游戏类似
| 背景 | 按键 | 奖品 |
|---|---|---|
仿艺气山
艺气仙跟网易严选一样
| 背景 | 按键 | 奖品 |
|---|---|---|
仿咸鱼 (圆形)
咸鱼款也跟网易游戏类似
| 背景 | 按键 | 奖品 |
|---|---|---|
以上就是九宫格组件部分
老虎机
跟前两种组件不同buttons
仿抖音
点击图片开始抽奖~
原来的背景图比较高
⛔Warning注意了
lucky-canvas 内部会缓存生成的图片 , 使用图片 src 属性作缓存 KEY , 因为多个商品共用一个图片 。 src 一样 , 会造成缓存冲突 , 解决的办法是在 src 值的最后添加 hashtag 。 。
| 背景 | 按键 | 奖品 |
|---|---|---|
仿滴滴
点击图片开始抽奖~
又一个老虎机
| 背景 | 按键 | 奖品 |
|---|---|---|
除了设计素材
好了
我的博客可以在 Markdown 嵌入全功能 JavaScript 和 CSS 内容
大家也可以阅读 ./bird-button.html 体验展示效果😝↩︎,