html 小程序九宫格抽奖,九宫格抽奖 js jquery 小程序 vue 插件(原创)

a1f7cc33a17b8abc5ba6b647ced48e14.png

5b4b944461607cc871b1911f9854541f.png

插件描述:九宫格抽奖,奖品文字图片颜色按钮均可配置,支持同步异步抽奖,概率前后端可控,自动根据 dpr 调整清晰度

更新时间:2020-12-24 09:23:29

在 Js / JQuery 中使用

方式 1:通过 script 标签引入

为了避免 CDN 链接出现异常或波动,我非常建议你缓存到本地或服务器

最新版本:https://cdn.jsdelivr.net/npm/lucky-canvas/dist/lucky-canvas.umd.min.js

指定版本:https://cdn.jsdelivr.net/npm/lucky-canvas@1.1.2/dist/lucky-canvas.umd.min.js

// 大转盘抽奖

let luckyWheel = new LuckyCanvas.LuckyWheel({

el: '#my-lucky',

width: '300px',

height: '300px',

}, {

// ...你的配置

})

// 九宫格抽奖

let luckyGrid = new LuckyCanvas.LuckyGrid({

el: '#my-lucky',

width: '300px',

height: '300px',

}, {

// ...你的配置

})

在 vue2.x / vue3.x 中使用

方式 1:通过 import 引入

首先安装插件# npm 安装:

npm install vue-luck-draw

# yarn 安装:

yarn add vue-luck-draw

然后找到 main.js 引入插件并 use// vue2.x

import LuckDraw from 'vue-luck-draw'

Vue.use(LuckDraw)

// vue3.x

import LuckDraw from 'vue-luck-draw/vue3'

createApp(App).use(LuckDraw).mount('#app')

最后在组件内使用 大转盘组件 或 九宫格组件

width="300px"

height="300px"

...你的配置

/>

width="300px"

height="300px"

...你的配置

/>

#方式 2:通过 script 标签引入

为了避免 CDN 链接出现异常或波动,我非常建议你缓存到本地或服务器

vue2.x:最新版本: https://cdn.jsdelivr.net/npm/vue-luck-draw/dist/vue-luck-draw.umd.min.js

指定版本: https://cdn.jsdelivr.net/npm/vue-luck-draw@3.3.1/dist/vue-luck-draw.umd.min.js

vue3.x:最新版本: https://cdn.jsdelivr.net/npm/vue-luck-draw/vue3/vue-luck-draw.umd.min.js

指定版本: https://cdn.jsdelivr.net/npm/vue-luck-draw@3.3.1/vue3/vue-luck-draw.umd.min.js

width="300px"

height="300px"

...你的配置

/>

width="300px"

height="300px"

...你的配置

/>

new Vue({

el: '#app'

data () {

return {}

}

})

在 uni-app 中使用

当前 uni-app 中各端适配情况H5端 编译正常

app端 待测试

微信小程序 编译正常

其他小程序 待测试

#方式 1:通过 import 引入

#1. 安装插件

你可以选择通过 HBuilderX 导入插件:https://ext.dcloud.net.cn/plugin?id=3499

也可以选择通过 npm / yarn 安装# npm 安装:

npm install uni-luck-draw

# yarn 安装:

yarn add uni-luck-draw

#2. 引入并使用

width="600rpx"

height="600rpx"

...你的配置

/>

width="600rpx"

height="600rpx"

...你的配置

/>

// npm 下载会默认到 node_modules 里面,直接引入包名即可

import LuckyWheel from 'uni-luck-draw/lucky-wheel' // 大转盘

import LuckyGrid from 'uni-luck-draw/lucky-grid' // 九宫格

// 如果你是通过 HBuilderX 导入插件,那你需要指定一下路径

// import LuckyWheel from '@/components/uni-luck-draw/lucky-wheel' // 大转盘

// import LuckyGrid from '@/components/uni-luck-draw/lucky-grid' // 九宫格

export default {

// 注册组件

components: { LuckyWheel, LuckyGrid },

}

#3. 我这里提供了一个最基本的 demo 供你用于尝试

ref="luckyWheel"

width="600rpx"

height="600rpx"

:blocks="blocks"

:prizes="prizes"

:buttons="buttons"

:defaultStyle="defaultStyle"

@start="startCallBack"

@end="endCallBack"

/>

import LuckyWheel from 'uni-luck-draw/lucky-wheel'

export default {

components: { LuckyWheel },

data () {

return {

blocks: [

{ padding: '13px', background: '#d64737' }

],

prizes: [

{ title: '1元红包', background: '#f9e3bb', fonts: [{ text: '1元红包', top: '18%' }] },

{ title: '100元红包', background: '#f8d384', fonts: [{ text: '100元红包', top: '18%' }] },

{ title: '0.5元红包', background: '#f9e3bb', fonts: [{ text: '0.5元红包', top: '18%' }] },

{ title: '2元红包', background: '#f8d384', fonts: [{ text: '2元红包', top: '18%' }] },

{ title: '10元红包', background: '#f9e3bb', fonts: [{ text: '10元红包', top: '18%' }] },

{ title: '50元红包', background: '#f8d384', fonts: [{ text: '50元红包', top: '18%' }] },

],

buttons: [

{ radius: '50px', background: '#d64737' },

{ radius: '45px', background: '#fff' },

{ radius: '41px', background: '#f6c66f', pointer: true },

{

radius: '35px', background: '#ffdea0',

fonts: [{ text: '开始\n抽奖', fontSize: '18px', top: -18 }]

}

],

defaultStyle: {

fontColor: '#d64737',

fontSize: '14px'

},

}

},

methods: {

// 点击抽奖按钮触发回调

startCallBack () {

// 先开始旋转

this.$refs.luckyWheel.play()

// 使用定时器来模拟请求接口

setTimeout(() => {

// 3s后得到中奖索引

let index = Math.random() * 6 >> 0

// 缓慢停止游戏

this.$refs.luckyWheel.stop(index)

}, 3000)

},

// 抽奖结束触发回调

endCallBack (prize) {

// 奖品详情

console.log(prize)

}

}

}

用原生js实现的转盘抽奖九宫格抽奖插件! 1、转盘抽奖----指针旋转 // 指针旋转,从右向左顺时针计算奖品 var luckArr = ['100减99优惠券','谢谢参与','59减15优惠券','谢谢参与','39减10优惠券','谢谢参与']; var luck = new LuckDraw(); var startRotate = function(elem){ luck._init({ rotateId: '#luckPointer', luckNumber: Math.floor(Math.random() * (5 - 0) + 0), typeNumber: 6, time: 2000, type: 'turntable', circleNumber: 10, success: function(res){ console.log(res.luckNumber); console.log(luckArr[res.luckNumber]); alert(luckArr[res.luckNumber]); } }); } 2、转盘抽奖----转盘旋转 // 转盘旋转,从左向右逆时针计算奖品 var luckArr = ['100减99优惠券', '谢谢参与', '39减10优惠券', '谢谢参与', '59减15优惠券', '谢谢参与']; var luck = new LuckDraw(); var startRotate = function (elem) { luck._init({ rotateId: '#luckTurntable', luckNumber: Math.floor(Math.random() * (5 - 0) + 0), typeNumber: 6, time: 2000, type: 'turntable', circleNumber: 10, success: function (res) { console.log(res.luckNumber); console.log(luckArr[res.luckNumber]); alert(luckArr[res.luckNumber]); } }); } 3、九宫格抽奖 var luckArr = ['10元红包', 'iPad Mini', '莫灰心', '20元话费', '20元话费', '莫灰心', '某视频网站会员一月', '88元红包']; var luck = new LuckDraw(); var startRotate = function (elem) { luck._init({ rotateId: '.rui-luck-prize', activeClass: 'rui-active', luckNumber: Math.floor(Math.random() * (7 - 0) + 0), typeNumber: 8, time: 3000, type: 'prize', circleNumber: 10, success: function (res) { console.log(res.luckNumber) console.log(luckArr[res.luckNumber]) alert(luckArr[res.luckNumber]) } }); } 4、参数说明 | 参数 | 类型 | 必填 | 默认值 | 说明 | |----|-----|-----|-----|-----| | pointerId | String | 选填 | luckPointer | 指针对象id | | turntableId | String | 选填 | luckTurntable | 转盘对象id | | rotateId | String | 必填 | luckTurntable | 旋转对象id | | activeClass | String | 九宫格抽奖必填 | rui-active | 九宫格抽奖选中是的效果 | | type | String | 必填 | turntable | 选择是九宫格抽奖还是转盘抽奖(turntable:转盘抽奖;prize:九宫格抽奖) | | time | Number | 选填 | 2000 | 抽奖动作的时间 | | luckNumber | Number | 必填 | 4 | 中奖位置 | | typeNumber | Number | 必填 | 6 | 共有多少个中奖位置 | | circleNumber | Number | 必填 | 10 | 轮回圈数后中奖 | | success | Funtion | 选填 | function(){} | 抽中后返回的成功函数 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值