移动vue大转盘抽奖

近期做大转盘的抽奖的形式,需要动态奖品的数量,之前计划写源生的js和css实现,相对来说是比较困难的,最好的办法还是利用canvas操作。

最近找到vue的canvas开源的插件,很高校的解决了整个问题。数据是我随便写的,应该可以执行。可能有点丑,后期样式自己随便调。

# npm 安装
npm install @lucky-canvas/vue

# 或者 yarn 安装
yarn add @lucky-canvas/vue

main.js全局引入

import VueLuckyCanvas from '@lucky-canvas/vue'
Vue.use(VueLuckyCanvas)

 /*** 按需引入*/


import { LuckyWheel, LuckyGrid } from '@lucky-canvas/vue'
// 大转盘抽奖
Vue.components('LuckyWheel', LuckyWheel)

界面中直接

 <LuckyWheel

          class="luck-draw"

          ref="LuckyWheel"

          width="340px"

          height="340px"

          :blocks="blocks"

          :prizes="prizes"

          :buttons="buttons"

          :default-style="defaultStyle"

          :default-config="defaultConfig"

          @start="startCallBack"

          @end="endCallBack"

       

blocks背景配置
buttons按钮的配置
default-style默认样式
default-config默认配置
prizes奖品的配置

/>

配置选项全部在data中设置

data(){
    return{
        blocks: [{ padding: '10px', background: '#869cfa' }],
        prizes: [
        { fonts: [{ text: '0' }], background: '#e9e8fe' },
        { fonts: [{ text: '1' }], background: '#b8c5f2' },
        { fonts: [{ text: '2' }], background: '#e9e8fe' },
        { fonts: [{ text: '3' }], background: '#b8c5f2' },
        { fonts: [{ text: '4' }], background: '#e9e8fe' },
        { fonts: [{ text: '5' }], background: '#b8c5f2' },
      ],
       defaultStyle: {
        fontColor: '#303133',
        fontSize: '10px',
        lengthLimit:98,
      },
      defaultConfig: {
        gutter: '1px',
      },
   }
}
startCallBack按钮点击执行事件
endCallBack旋转结果执行事件

执行转盘旋转的方法:

 this.$refs.LuckyWheel.play();

执行转盘结束和定在位置的操作:index是奖品数组的序列号

  this.$refs.LuckyWheel.stop(index);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值