npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

k-luckdraw

v2.0.0

Published

宫格抽奖的轮子

Downloads

5

Readme

一个九宫格抽奖的轮子

在线demo

demo

安装

NPM

npm i k-luckdraw -S

CDN

<script src="//unpkg.com/k-luckdraw/index.js"></script>

参数 options

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

var item = {
    title:'10万人民币',  //奖品的标题
    icon:'',  //奖品对应的图片
    index:'1' //奖品序号
}
options.data = [...item...]

示例

<!-- 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

<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

<!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>