最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年06月14日 10:09:50   作者:vaelcy  
一個基于?Js?+?Canvas?的大轉(zhuǎn)盤和九宮格和老虎機抽獎,使用lucky-canvas?功能可以自由配置,多端適配的特點,本文通過實例代碼給大家詳細介紹抽獎方法,感興趣的朋友一起看看吧

ucky-canvas 介紹

一個基于 Js + Canvas 的【大轉(zhuǎn)盤 & 九宮格 & 老虎機】抽獎, 致力于為 web 前端提供一個功能強大且專業(yè)可靠的組件, 只需要通過簡單配置即可實現(xiàn)自由化定制, 幫助你快速的完成產(chǎn)品需求。

lucky-canvas 功能特點

自由配置

獎品 / 文字 / 圖片 / 顏色 / 按鈕均可自由配置;支持同步 / 異步抽獎;中獎概率前 / 后端可控

多端適配

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

響應(yīng)式

自動根據(jù)設(shè)備 dpr 調(diào)整清晰度;并支持使用 百分比 / rem / rpx 屬性來適配移動端布局

具體詳細功能介紹api請看官網(wǎng)

下面我簡單寫了三個抽獎小demo,大家可做參考。

代碼塊展示

這里使用掘金的碼上掘金展示效果給大家看,ps:里邊的圖片因為引用的是本地所以不顯示,可以看下面效果圖的展示

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

效果圖展示

圖片是隨便用的本地圖片(懶得在網(wǎng)上找圖片資源了),大家可自行替換成自己想要的圖片哈,我這里就是簡單實現(xiàn)一下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: '小米手環(huán)', top: '40%' }], },
        { x: 2, y: 0, fonts: [{ text: '蘋果13', top: '40%' }], },
        { x: 2, y: 1, fonts: [{ text: '優(yōu)惠券50', top: '40%' }], },
        { x: 2, y: 2, fonts: [{ text: '優(yōu)惠券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: '優(yōu)酷會員', top: '40%' }], },
    ],
    buttons: [
        {
            x: 1, y: 1,
            background: '#9c9dd8',
            fonts: [{ text: '抽獎', top: '40%' }],
        },
    ],
    defaultStyle: {
        background: '#b8c5f2',
        fontSize: '14'
    },
    start: function () {
        // 開始游戲
        myLucky.play()
        // 使用定時器模擬接口
        setTimeout(() => {
            // 結(jié)束游戲, 并抽第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(() => {
            // 結(jié)束游戲, 并抽第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: '小米手環(huán)', top: '60%' }], imgs: [prizeImg3[1]] },
        { x: 2, y: 0, fonts: [{ text: '蘋果13', top: '60%' }], imgs: [prizeImg3[2]] },
        { x: 2, y: 1, fonts: [{ text: '優(yōu)惠券50', top: '60%' }], imgs: [prizeImg3[3]] },
        { x: 2, y: 2, fonts: [{ text: '優(yōu)惠券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: '優(yōu)酷會員', 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(() => {
            // 結(jié)束游戲, 并抽第0號獎品
            myLucky3.stop(0)
        }, 3000)
    },
    end: function (event) {
        // 獲取抽獎的值
        console.log(event)
    }
})

到此這篇關(guān)于基于JS+Canvas的lucky-canvas 抽獎功能的文章就介紹到這了,更多相關(guān)lucky canvas 抽獎內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中實現(xiàn)Map的示例代碼

    JavaScript中實現(xiàn)Map的示例代碼

    本篇文章給大家介紹javascript中實現(xiàn)map的示例代碼,代碼寫的簡單易懂,可以獲取、刪除鍵值,剛興趣的朋友跟著腳本之家小編一起學習吧。
    2015-09-09
  • JavaScript reduce和reduceRight詳解

    JavaScript reduce和reduceRight詳解

    這篇文章主要介紹了JavaScript reduce和reduceRight的高級用法詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • js腳本分頁代碼分享(7種樣式)

    js腳本分頁代碼分享(7種樣式)

    這篇文章主要介紹了7種JS腳本分頁樣式,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • JavaScript實現(xiàn)多文件拖動上傳功能

    JavaScript實現(xiàn)多文件拖動上傳功能

    這篇文章主要為大家詳細介紹了如何使用JavaScript實現(xiàn)多文件拖動上傳功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • 了解Javascript中函數(shù)作為對象的魅力

    了解Javascript中函數(shù)作為對象的魅力

    這篇文章主要介紹了了解Javascript中函數(shù)作為對象的魅力,javascript中函數(shù)可以有屬性,可以有方法, 可以享有所有對象所擁有的特性。并且最重要的,她還可以直接被調(diào)用,需要的朋友可以參考下
    2019-06-06
  • JS根據(jù)生日算年齡的方法

    JS根據(jù)生日算年齡的方法

    這篇文章主要介紹了JS根據(jù)生日算年齡的方法,涉及javascript操作時間的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • 詳解JSON和JSONP劫持以及解決方法

    詳解JSON和JSONP劫持以及解決方法

    這篇文章主要介紹了詳解JSON和JSONP劫持以及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • javascript基本數(shù)據(jù)類型和轉(zhuǎn)換

    javascript基本數(shù)據(jù)類型和轉(zhuǎn)換

    本文主要介紹了javascript的基本數(shù)據(jù)類型和轉(zhuǎn)換,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • 無縫滾動的簡單實現(xiàn)代碼(推薦)

    無縫滾動的簡單實現(xiàn)代碼(推薦)

    下面小編就為大家?guī)硪黄獰o縫滾動的簡單實現(xiàn)代碼(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • HTTP?HEAD請求的使用場合實例詳解

    HTTP?HEAD請求的使用場合實例詳解

    這篇文章主要為大家介紹了HTTP?HEAD請求的使用場合實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12

最新評論

苗栗县| 昆山市| 宁蒗| 达日县| 郓城县| 古交市| 泰宁县| 漯河市| 太白县| 晋宁县| 治县。| 乐山市| 临邑县| 达州市| 远安县| 枝江市| 平阴县| 含山县| 金塔县| 弥渡县| 宝应县| 施秉县| 镇宁| 兴国县| 上思县| 石首市| 黔西| 渝中区| 咸宁市| 蒙阴县| 小金县| 沙河市| 彭州市| 碌曲县| 广东省| 惠水县| 康马县| 广德县| 龙山县| 犍为县| 昂仁县|