您好,欢迎访问一九零五行业门户网

js如何实现抽奖(方形)效果?两种抽奖效果的实现(代码示例)

本篇文章给大家带来的内容是介绍js如何实现抽奖(方形)效果?两种抽奖效果的实现(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
展示:
html:
<div id="table"></div><div id="btn">   <button onclick="start('p', 'active','newactive', 100)">顺序抽/停止</button>   <button onclick="startran('p', 'active','newactive', 100)">随机抽/停止</button></div>
css:
table {    text-align: center;    border-collapse: collapse;}table * {    width: 60px;    height: 60px;}#btn {    box-sizing: border-box;    width: 190px;    display: flex;    justify-content: space-between;    align-items: center;}#btn * {    flex-grow: 1;    background-color: red;    border: 1px solid #000;    color: #fff;    height: 30px;    font-size: 10px;}.active {    background-color: #ccc;}.newactive {    background-color: #00ffff;}
javascript:
// 定义一个奖池    var jackpot = [        ['奖品a1', '奖品a2', '奖品a3'],        ['奖品b1', '奖品b2', '奖品b3'],        ['奖品c1', '奖品c2', '奖品c3']    ];    /**     * [table 创建表格]     * @param  {[array]} arr        [奖品数组]     * @param  {[string]} selector [选择器]     * @return {[string]} table [返回一个html标签]     */    function table(arr, selector) {        var table = '<table border="1">';        for (var i = 0; i < arr.length; i++) { table += '<tr>';            for (var j = 0; j < arr[i].length; j++) { table += '<td class="' + selector + '">' + arr[i][j] + '</td>';            }            table += '</tr>';        }        table += '</table>';        return table;    }    // 输出奖池    document.getelementbyid('table').innerhtml = table(jackpot, 'p');    var key = true; // start,startran控制器    var num = 3; // 抽奖次数    // 抽过的还能抽     可定义抽奖次数-->次数限制                       num需要定义    //                 不定义抽奖次数-->次数无限                       num不需定义    // 抽过的不能抽     可定义抽奖次数-->次数限制(次数不超过选择器长度)   num需要定义    //                 不定义抽奖次数-->次数等于选择器长度              num需要定义    /**     * [start 开始抽奖]     * @param  {[string]} selector    [选择器]     * @param  {[string]} addselector [给选中的添加样式]     * @param  {[string]} newaddselector [中奖奖品样式]     * @param  {[number]} speed       [时间越小,速度越快]     * @return {[type]}             [description]     */    function start(selector, addselector, newaddselector, speed) {        if (key) {            if (typeof(num) == 'undefined' || num != 0) {                var count = 0;                // 如果写成var timer会每次执行时重新定义一个timer,那么clearinterval(timer)只能清除后面定义的那个timer,前面定义的已经没有变量指向了  无法清除                timer = setinterval(function() {                    if (count < $('.' + selector).length) {                        $('.' + selector).eq(count).addclass(addselector);                        $('.' + selector).eq(count).siblings().removeclass(addselector);                        $('.' + selector).eq(count).parent().siblings().children().removeclass(addselector);                        count++;                    } else {                        count = 0;                    }                }, speed);                if(typeof(num) != 'undefined'){                    num--;                }            } else{                key = false;                console.log(抽奖结束);            }        } else {            clearinterval(timer);            // 决定抽中的奖品的样式和抽中的奖品能否继续抽            $('.' + addselector).addclass(newaddselector).removeclass(selector);            // 奖品            console.log($('.' + addselector).html());        }        key = !key;    }    /**     * [start 开始抽奖]     * @param  {[string]} selector    [选择器]     * @param  {[string]} addselector [给选中的添加样式]     * @param  {[string]} newaddselector [中奖奖品样式]     * @param  {[number]} speed       [时间越小,速度越快]     * @return {[type]}             [description]     */    function startran(selector, addselector, newaddselector, speed) {        if (key) {            if (typeof(num) == 'undefined' || num != 0) {                // 如果写成var timer会每次执行时重新定义一个timer,那么clearinterval(timer)只能清除后面定义的那个timer,前面定义的已经没有变量指向了  无法清除                timer = setinterval(function() {                    var count = math.floor(math.random() * $('.' + selector).length);                    $('.' + selector).eq(count).addclass(addselector);                    $('.' + selector).eq(count).siblings().removeclass(addselector);                    $('.' + selector).eq(count).parent().siblings().children().removeclass(addselector);                }, speed);                if(typeof(num) != 'undefined'){                    num--;                }            } else {                key = false;                console.log(抽奖结束);            }        } else {            clearinterval(timer);            // 决定抽中的奖品的样式和抽中的奖品能否继续抽            $('.' + addselector).addclass(newaddselector).removeclass(selector);            // 奖品            console.log($('.' + addselector).html());        }        key = !key;    }
以上就是js如何实现抽奖(方形)效果?两种抽奖效果的实现(代码示例)的详细内容。
其它类似信息

推荐信息