三行三列纵向滚动抽奖示例

51 阅读2分钟

插件官网: 100px.net/

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button onclick="playGame()">开始抽奖</button>
    <div id="my-lucky"></div>

    <script src="https://unpkg.com/lucky-canvas@1.7.25"></script>
    <script>
        const myLucky = new LuckyCanvas.SlotMachine('#my-lucky', {
            width: '300px',
            height: '300px',
            blocks: [
                { padding: '10px', background: '#869cfa' },
                { padding: '10px', background: '#e9e8fe' },
            ],
            slots: [
                { order: [0, 1, 2, 3, 4, 5], direction: 1 },
                { order: [1, 2, 3, 4, 5, 0], direction: -1 },
                { order: [2, 3, 4, 5, 0, 1], direction: 1 },
            ],
            // 这里记录的是总共的奖品数量,每列奖品类型都是一样的
            prizes: [
                {
                    imgs: [
                        {
                            width: '100%',
                            height: '100%',
                            src: './分享效果图.png'
                        }
                    ]
                },
                {
                    imgs: [
                        {
                            width: '100%',
                            height: '100%',
                            src: './信息.png'
                        }
                    ]
                },
                {
                    imgs: [
                        {
                            width: '100%',
                            height: '100%',
                            src: './中奖记录.png'
                        }
                    ]
                },
                {
                    imgs: [
                        {
                            width: '100%',
                            height: '100%',
                            src: './中奖记录.png'
                        }
                    ]
                },
                {
                    imgs: [
                        {
                            width: '100%',
                            height: '100%',
                            src: './信息.png'
                        }
                    ]
                },
                {
                    imgs: [
                        {
                            width: '100%',
                            height: '100%',
                            src: './分享效果图.png'
                        }
                    ]
                }
            ],
            defaultConfig: {
                rowSpacing: '10px',
                colSpacing: '10px'
            },
            end(prize) {
                console.log(prize)
            }
        })

        // 开始游戏
        const playGame = () => {
            myLucky.play()
            setTimeout(() => {
                // 假设 4 种结果
                const res = [
                    [1, 3, 1],
                    [0, 0, 3],
                    [2, 2, 2],
                    [3, 5, 5]
                ]
                // 随机取一组数据
                const index = res[Math.random() * 4 >> 0]

                console.log(index)
                // 调用 stop 方法停止游戏
                myLucky.stop(index)
            }, 500);
        }
    </script>

</body>

</html>

如果上面代码报错的话,可以转换成下面这种方式试一下,就是监听浏览器的load事件,保存页面刷新后再去获取画布元素

window.onload = function () {
                myLucky = new LuckyCanvas.SlotMachine('#my-lucky', {
                    width: '300px',
                    height: '300px',
                    blocks: [
                        { padding: '10px', background: '#869cfa' },
                        { padding: '10px', background: '#e9e8fe' },
                    ],
                    slots: [
                        { order: [0, 1, 2, 3, 4, 5], direction: 1 },
                        { order: [1, 2, 3, 4, 5, 0], direction: -1 },
                        { order: [2, 3, 4, 5, 0, 1], direction: 1 },
                    ],
                    // 这里记录的是总共的奖品数量,每列奖品类型都是一样的
                    prizes: [
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/0.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/1.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/2.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/3.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/4.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/5.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/6.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/7.png'
                                }
                            ]
                        },
                        {
                            imgs: [
                                {
                                    width: '100%',
                                    height: '100%',
                                    src: './prize/8.png'
                                }
                            ]
                        }
                    ],
                    defaultConfig: {
                        rowSpacing: '10px',
                        colSpacing: '10px'
                    },
                    end(prize) {
                        console.log(prize)
                    }
                })
            }

            // 开始游戏
            const playGame = () => {
                myLucky.play()
                setTimeout(() => {
                    // 假设 4 种结果
                    const res = [
                        [1, 3, 1],
                        [0, 0, 3],
                        [2, 2, 2],
                        [3, 5, 5]
                    ]
                    // 随机取一组数据
                    const index = res[Math.random() * 4 >> 0]

                    console.log(index)
                    // 调用 stop 方法停止游戏
                    myLucky.stop(index)
                }, 500);
            }