前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个九宫格抽奖的轮子

一个九宫格抽奖的轮子

作者头像
chuchur
发布2022-10-25 14:19:33
4740
发布2022-10-25 14:19:33
举报
文章被收录于专栏:禅境花园

在线demo

demo

安装

NPM

代码语言:javascript
复制
npm i k-luckdraw -S

CDN

代码语言:javascript
复制
<script src="//unpkg.com/k-luckdraw/index.js"></script>

参数 options

代码语言:javascript
复制
var options = {
    id:'', //render 的dom的ID,必填***
    data: [], //奖品的数据,必填***
    index: -1, //当前转动到哪个位置,起点位置
    speed: 300,//初始转动速度
    times: 0,//转动次数
    cycle: 50,//转动基本次数:即至少需要转动多少次再进入抽奖环节
    prize: -1,//中奖位置,必填***, 不然停不下来
    isBengin: false, //已经开始了,就不能进行第二次抽,
    callBack: null,//回调,轮子转完了得弹个什么框的
    autoLuck: false // 默认是否点中间的start 开始抽奖
}

var luck = new luckDraw(options)
options.data.item
代码语言:javascript
复制
var item = {
    title:'10万人民币',  //奖品的标题
    icon:'',  //奖品对应的图片
    index:'1' //奖品序号
}
options.data = [...item...]

示例

代码语言:javascript
复制
<!-- html -->
<div id="luck-box"></div>

<!-- js -->
<script>
    var luck = new luckDraw({ id: 'luck-box', autoLuck: true, prize: 7 })
    // or
    /*
    var luck = new luckDraw({ id: 'luck-box', autoLuck: false })
    luck.prize =7
    luck.start()  //开始
    */
</script>
for vue
代码语言:javascript
复制
<template>
    <div id="luck-box"></div>
</template>        
<script>
import luckdraw from 'k-luckdraw'
export default { 
    mounted(){
        let luck = new luckdraw({id:'luck-box',prize: 5,autoLuck:true})
        //luck.start()
    }
}
<script>

demo

代码语言:javascript
复制
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>九宫格抽奖demo</title>
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta data-n-head="true" name="viewport" content="width=device-width, initial-scale=1">

    <script src="//unpkg.com/k-luckdraw/index.js"></script>
    <style>
        .luck-box {
            width: 640px;
            height: 582px;
            margin: 50px auto 0;
            padding: 24px;
        }

        .luck-draw {
            width: 600px;
        }

        .luck-draw .luck-draw-item {
            height: 176px;
            width: 196px;
            background: linear-gradient(120deg, #ee614a, #ff6951);
            text-align: center;
            -webkit-box-sizing: border-box;
            margin: 0 2px 2px 0;
            font-size: 0;
            float: left;
        }

        .luck-draw .luck-draw-item:nth-child(2n) {
            background: linear-gradient(120deg, #db3f3f, #ed4444);
        }

        .luck-draw .luck-draw-start {
            background: url(start.jpg) no-repeat center center;
            background-size: contain;
            cursor: pointer;
        }

        .luck-draw .luck-draw-item-icon {
            width: 95%;
            margin: .3rem auto 0;
            height: 70%;
            display: inline-block;
        }

        .luck-draw .luck-draw-item-icon img {
            max-height: 90%;
            max-width: 100%;
            border-radius: 6px;
            margin: 18px 0;
            display: inline-block;
            background: #ffb4b4;
            width: 90px;
            height: 90px;
        }

        .luck-draw .luck-draw-item-name {
            color: #fff;
            padding-top: 8px;
            font-size: 16px;
            display: block;
        }

        .luck-draw .luck-draw-item-active {
            background: #ffb000 !important;
        }

        .test {
            width: 350px;
            margin: 0 auto;
        }

        .test input {
            border: 1px solid #ddd;
            padding: 10px;
            border-radius: 10px;
            width: 200px;
        }

        .test button {
            border: 1px solid #ddd;
            padding: 9px;
            border-radius: 10px;
            width: 76px;
        }
    </style>
</head>

<body>
    <div id="luck-box" class="luck-box">

    </div>
    <div class="test">
        <div class="info">

        </div>
        <input placeholder="输入抽奖序号" id="prize" />
        <button id="start">开始抽奖</button>
    </div>
    <script>
        // index 的顺序 就是奖品的顺序
        var data = [
            { title: '1号奖品', icon: '', index: 1 },
            { title: '8号奖品', icon: '', index: 8 },
            { title: '2号奖品', icon: '', index: 2 },
            { title: '5号奖品', icon: '', index: 5 },
            { title: '4号奖品', icon: '', index: 4 },
            { title: '6号奖品', icon: '', index: 6 },
            { title: '3号奖品', icon: '', index: 3 },
            { title: '7号奖品', icon: '', index: 7 },
        ];
        var luck = new luckDraw({
            id: 'luck-box',
            autoLuck: false,
            // prize: 7,
            data: data,
            callBack: function () {
                var prize = document.querySelector('#prize').value
                setTimeout(() => {
                    alert('恭喜你抽中' + prize + '号奖品')
                }, 0);
            }
        })
        // luck.start()  //开始
        document.querySelector('#start').addEventListener('click', function () {
            var prize = document.querySelector('#prize').value
            prize = Number(prize)
            if (prize > 8 || prize < 1 || isNaN(prize)) {
                return alert('奖品序号1-8数字')
            }
            luck.prize = prize
            luck.start()
        })
    </script>
</body>

</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/08/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在线demo
  • 安装
    • NPM
      • CDN
        • options.data.item
        • for vue
    • 参数 options
    • 示例
    • demo
    相关产品与服务
    内容分发网络 CDN
    内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档