返回顶部
首页 > 资讯 > 前端开发 > JavaScript >基于JS+Canvas的lucky-canvas 抽奖功能
  • 415
分享到

基于JS+Canvas的lucky-canvas 抽奖功能

2024-04-02 19:04:59 415人浏览 薄情痞子
摘要

目录ucky-canvas 介绍lucky-canvas 功能特点自由配置多端适配响应式代码块展示效果图展示代码如下抽奖一抽奖二抽奖三ucky-canvas 介绍 一个基于 js +

ucky-canvas 介绍

一个基于 js + Canvas 的【大转盘 & 九宫格 & 老虎机】抽奖, 致力于为 WEB 前端提供一个功能强大且专业可靠的组件, 只需要通过简单配置即可实现自由化定制, 帮助你快速的完成产品需求。

lucky-canvas 功能特点

自由配置

奖品 / 文字 / 图片 / 颜色 / 按钮均可自由配置;支持同步 / 异步抽奖;中奖概率前 / 后端可控

多端适配

支持 JS / TS / JQ / Vue / React / 微信小程序 / UniApp / Taro 等;并且多端使用 / 表现形式完全一致

响应式

自动根据设备 dpr 调整清晰度;并支持使用 百分比 / rem / rpx 属性来适配移动端布局

具体详细功能介绍api请看官网

下面我简单写了三个抽奖小demo,大家可做参考。

代码块展示

这里使用掘金的码上掘金展示效果给大家看,ps:里边的图片因为引用的是本地所以不显示,可以看下面效果图的展示

https://code.juejin.cn/pen/7103522105597100039

效果图展示

图片是随便用的本地图片(懒得在网上找图片资源了),大家可自行替换成自己想要的图片哈,我这里就是简单实现一下demo。

代码如下

抽奖一

// 第一个抽奖
const myLucky = new LuckyCanvas.LuckyGrid('#my-lucky', {
    width: '300px',
    height: '300px',
    blocks: [
        { padding: '10px', background: '#869cfa' },
        { padding: '10px', background: '#e9e8fe' },
    ],
    prizes: [
        { x: 0, y: 0, fonts: [{ text: '谢谢参与', top: '40%' }], },
        { x: 1, y: 0, fonts: [{ text: '小米手环', top: '40%' }], },
        { x: 2, y: 0, fonts: [{ text: '苹果13', top: '40%' }], },
        { x: 2, y: 1, fonts: [{ text: '优惠券50', top: '40%' }], },
        { x: 2, y: 2, fonts: [{ text: '优惠券100', top: '40%' }], },
        { x: 1, y: 2, fonts: [{ text: '迷你小冰箱', top: '40%' }], },
        { x: 0, y: 2, fonts: [{ text: '腾讯会员', top: '40%' }], },
        { x: 0, y: 1, fonts: [{ text: '优酷会员', top: '40%' }], },
    ],
    buttons: [
        {
            x: 1, y: 1,
            background: '#9c9dd8',
            fonts: [{ text: '抽奖', top: '40%' }],
        },
    ],
    defaultStyle: {
        background: '#b8c5f2',
        fontSize: '14'
    },
    start: function () {
        // 开始游戏
        myLucky.play()
        // 使用定时器模拟接口
        setTimeout(() => {
            // 结束游戏, 并抽第0号奖品
            myLucky.stop(0)
        }, 3000)
    },
    end: function (event) {
        // 获取抽奖的值
        console.log(event)
    }
})

抽奖二

// 第二个抽奖
const prizeImg2 = {
    src: '../../img/icon1.png',
    activeSrc: '../../img/icon3.png',
    width: '50%',
    top: '25%'
}
const myLucky2 = new LuckyCanvas.LuckyGrid('#my-lucky2', {
    width: '300px',
    height: '300px',
    blocks: [
        { padding: '10px', background: '#869cfa' },
        { padding: '10px', background: '#e9e8fe' },
    ],
    prizes: [
        { x: 0, y: 0, imgs: [prizeImg2] },
        { x: 1, y: 0, imgs: [prizeImg2] },
        { x: 2, y: 0, imgs: [prizeImg2] },
        { x: 2, y: 1, imgs: [prizeImg2] },
        { x: 2, y: 2, imgs: [prizeImg2] },
        { x: 1, y: 2, imgs: [prizeImg2] },
        { x: 0, y: 2, imgs: [prizeImg2] },
        { x: 0, y: 1, imgs: [prizeImg2] },
    ],
    buttons: [
        {
            x: 1, y: 1,
            background: '#9c9dd8',
            fonts: [{ text: '抽奖', top: '40%' }],
        },
    ],
    defaultStyle: {
        background: '#b8c5f2'
    },
    start: function () {
        // 开始游戏
        myLucky2.play()
        // 使用定时器模拟接口
        setTimeout(() => {
            // 结束游戏, 并抽第0号奖品
            myLucky2.stop(0)
        }, 3000)
    },
    end: function (event) {
        // 获取抽奖的值
        console.log(event)
    }
})

抽奖三

// 第三个抽奖
const prizeImg3 = [
    {
        src: '../../img/icon1.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon2.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon3.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon4.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon5.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon6.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon1.png',
        width: '50%',
        top: '15%'
    },
    {
        src: '../../img/icon2.png',
        width: '50%',
        top: '15%'
    }
]
const myLucky3 = new LuckyCanvas.LuckyGrid('#my-lucky3', {
    width: '300px',
    height: '300px',
    blocks: [
        { padding: '10px', background: '#869cfa' },
        { padding: '10px', background: '#e9e8fe' },
    ],
    prizes: [
        { x: 0, y: 0, fonts: [{ text: '谢谢参与', top: '60%' }], imgs: [prizeImg3[0]] },
        { x: 1, y: 0, fonts: [{ text: '小米手环', top: '60%' }], imgs: [prizeImg3[1]] },
        { x: 2, y: 0, fonts: [{ text: '苹果13', top: '60%' }], imgs: [prizeImg3[2]] },
        { x: 2, y: 1, fonts: [{ text: '优惠券50', top: '60%' }], imgs: [prizeImg3[3]] },
        { x: 2, y: 2, fonts: [{ text: '优惠券100', top: '60%' }], imgs: [prizeImg3[4]] },
        { x: 1, y: 2, fonts: [{ text: '迷你小冰箱', top: '60%' }], imgs: [prizeImg3[5]] },
        { x: 0, y: 2, fonts: [{ text: '腾讯会员', top: '60%' }], imgs: [prizeImg3[6]] },
        { x: 0, y: 1, fonts: [{ text: '优酷会员', top: '60%' }], imgs: [prizeImg3[7]] },
    ],
    buttons: [
        {
            x: 1, y: 1,
            background: '#9c9dd8',
            fonts: [{ text: '抽奖', top: '40%' }],
        },
    ],
    defaultStyle: {
        background: '#b8c5f2',
        fontSize: '14'
    },
    start: function () {
        // 开始游戏
        myLucky3.play()
        // 使用定时器模拟接口
        setTimeout(() => {
            // 结束游戏, 并抽第0号奖品
            myLucky3.stop(0)
        }, 3000)
    },
    end: function (event) {
        // 获取抽奖的值
        console.log(event)
    }
})

到此这篇关于基于JS+Canvas的lucky-canvas 抽奖功能的文章就介绍到这了,更多相关lucky canvas 抽奖内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于JS+Canvas的lucky-canvas 抽奖功能

本文链接: https://lsjlt.com/news/151379.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于JS+Canvas的lucky-canvas 抽奖功能
    目录ucky-canvas 介绍lucky-canvas 功能特点自由配置多端适配响应式代码块展示效果图展示代码如下抽奖一抽奖二抽奖三ucky-canvas 介绍 一个基于 Js +...
    99+
    2024-04-02
  • JS+Canvas绘制抽奖转盘
    本文实例为大家分享了JS+Canvas绘制抽奖转盘的具体代码,供大家参考,具体内容如下 给大家分享一个Canvas绘制的转盘抽奖,点击开关开始转动时,转盘开始转动,转盘停止时指针指向...
    99+
    2024-04-02
  • 基于JavaScript实现轮盘抽奖功能
    目录实现步骤html代码:css代码:js代码:不知道今天自己该吃什么,一招帮你解决选择困难症。通过html+css+js实现一个轮盘抽奖功能。我们可以将平时吃的饭菜输入到代码中,每...
    99+
    2023-01-13
    js轮盘抽奖 js抽奖
  • js实现转盘抽奖功能
    本文实例为大家分享了js实现转盘抽奖功能的具体代码,供大家参考,具体内容如下 效果:点击抽奖按钮,转盘开始旋转数圈后停止 示例: 抽奖html代码: <!DOCTYPE htm...
    99+
    2024-04-02
  • js实现简单抽奖小功能
    本文实例为大家分享了js实现简单抽奖小功能的具体代码,供大家参考,具体内容如下 1.场景: 点击按钮开始随机抽取奖品,当停止那刻停留在大屏幕的是抽中的奖品(“谢谢”即为没奖)。 2....
    99+
    2024-04-02
  • JS实现随机抽奖小功能
    本文实例为大家分享了JS实现随机抽奖小功能的具体代码,供大家参考,具体内容如下 点击开始按钮开始抽奖,div依次变红!下面是js代码,需要的自取 <script>    ...
    99+
    2024-04-02
  • 基于Redis实现抽奖功能及问题小结
    1、分析 公司年底要做年会所有的员工都要参与抽奖的环节 平台的产品要进行抽奖活动 这个时候我们可以利用redis中的set集合中的spop来实现。 特征:抽奖成功...
    99+
    2024-04-02
  • 基于Python怎么实现评论区抽奖功能
    这篇文章主要讲解了“基于Python怎么实现评论区抽奖功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Python怎么实现评论区抽奖功能”吧!1. 分析评论接口首先,我们需要找到评论数...
    99+
    2023-06-22
  • 基于Python实现评论区抽奖功能详解
    目录1. 分析评论接口2. 获取评论数据3. 筛选评论用户4. 抽取幸运观众5. 完整源码5.1 字符串截取的方式5.2 正则匹配方式5.3 执行结果1. 分析评论接口 首先,我们需...
    99+
    2024-04-02
  • JS+Canvas实现自定义头像功能
    目录写在最前成果展示Git地址功能说明实现细节相关依赖写在最后写在最前 前两天老大跟我说老虎官网上那个自定义头像的功能是flash实现的,没有安装过的还得手动去“允许&r...
    99+
    2024-04-02
  • js canvas如何实现滑块验证功能
    本篇内容主要讲解“js canvas如何实现滑块验证功能 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js canvas如何实现滑块验证功能 ”吧!滑块验证内容如下话不多说先上代码想用的小伙伴...
    99+
    2023-06-14
  • 基于Python的简易评论区抽奖
    文章目录 前言引入模块获取博客评论抽取用户程序入口效果 总结最后 前言 博主空空star主页空空star的主页 大家好,我是空空star,本篇给大家分享一下《基于Python的简易...
    99+
    2023-08-31
    python 开发语言
  • JS+HTML图片显示Canvas压缩功能的方法
    这篇文章主要介绍了JS+HTML图片显示Canvas压缩功能的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.选择图片并显示<!...
    99+
    2024-04-02
  • 基于Html5 canvas如何实现裁剪图片和马赛克功能
    这篇文章主要介绍了基于Html5 canvas如何实现裁剪图片和马赛克功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.核心功能  此组件功能包含:    图片裁剪(裁剪...
    99+
    2023-06-09
  • js canvas实现验证码并获取验证码功能
    本文实例为大家分享了js canvas制作验证码并获取验证码的具体代码,供大家参考,具体内容如下 最近没事写了一些小插件,今天要说的是包装一个验证码的js代码,如下: var ...
    99+
    2024-04-02
  • 基于docker 部署canvas-lms的详细步骤
    准备: 一台8G内存的服务器。安装好docker, pull一个ubuntu镜像下来, 可以是最新版也可以是官方支持的14/ 16 更新时间: 2018-04-04 Step 1: ...
    99+
    2024-04-02
  • 深入了解Canvas的国际化功能
    随着全球化的发展,多语言支持在互联网应用中变得越来越重要。其中,Canvas作为一种常用的HTML5绘图技术,也需要适应多语言的需求。本文将探索Canvas的多语言支持,并介绍一些实际应用案例。 一、Canvas的基本概念和特点...
    99+
    2024-01-17
    Canvas 多语言 支持
  • 基于vue+canvas的excel-like组件有什么用
    这篇文章给大家分享的是有关基于vue+canvas的excel-like组件有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。a vue component,基于vue的表格...
    99+
    2024-04-02
  • MySQL 实现点餐系统的订单抽奖功能
    MySQL 实现点餐系统的订单抽奖功能,需要具体代码示例随着互联网的发展,点餐系统越来越受到人们的青睐。而为了吸引更多的顾客,给顾客带来更好的消费体验,许多餐厅开始引入抽奖功能,通过顾客的订单生成抽奖机会,增加顾客的参与度和忠诚度。本文将介...
    99+
    2023-11-01
    MySQL 抽奖功能 订单
  • PHP实现抽奖功能的最佳实践分享
    PHP实现抽奖功能的最佳实践分享 随着互联网的发展,抽奖活动在各种网站和应用中变得越来越普遍,作为一种促销和互动手段,抽奖活动能够有效吸引用户,提升用户参与度和忠诚度。在网站或应用中如...
    99+
    2024-03-01
    实践 php 抽奖
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作