博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 简单抽奖实现
阅读量:4320 次
发布时间:2019-06-06

本文共 2637 字,大约阅读时间需要 8 分钟。

    大家在很多活动页面上都看到绚丽多彩的抽奖运用,网上也有比较多关于这方面的js和用as。今天我在工作的时候也要做个抽奖的运用。我之前没有写过这类的js,也不会as,就得屁颠屁颠的问度娘啦,虽然找到有js写的也有用框架做的,研究了下,觉得忒复杂。突然想到之前公司有个简单实现的抽奖js。就要拿过来看看,结合自己的需求封装成一个类。

html代码如下:

    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

 

js代码如下:

/** 抽奖封装对象* @class LuckyDraw* @param { Number } 抽奖悬停号码 * @method LuckyDraw.tigerMac* @param { Number, Function } 运动步伐间距,回调函数**/function LuckyDraw( numId ) {    if ( this instanceof LuckyDraw ) {        this.rewardId = numId;        this.timer = null;    } else {        return new LuckyDraw( numId );    }}LuckyDraw.prototype.tigerMac = function( iStep, callback ) {    var speed = 200 / iStep, // 时间间隔        $luckyItem = $('#la .lottery_box'),        len = $luckyItem.length,        index = 0, // 索引值        _this = this;            $luckyItem.removeClass('lottery_yeah').eq( index ).addClass('lottery_yeah');        this.timer = setInterval(function () {        if ( index + 1 > len ) {            index = 0;            iStep++;            clearInterval( _this.timer );            _this.tigerMac( iStep, callback );        } else {            if ( iStep >= 6 ) {                if ( _this.rewardId && $luckyItem.eq( index ).attr('eid') == _this.rewardId ) {                    $luckyItem.eq( index ).addClass('lottery_yeah');                    clearInterval( _this.timer );                    if ( callback && typeof callback === 'function' ) {                        callback.call( $luckyItem[index] );                    }                    return                }            }            index++;        }        $luckyItem.removeClass('lottery_yeah').eq(index).addClass('lottery_yeah');    }, speed)};// 抽奖$('#btn').click(    (function(){        var n = 3,            aLuckyNum = [2, 5, 8],            oCj = null;                    return function() {            if ( n ) {                oCj = new LuckyDraw( aLuckyNum[n - 1] );                n--;                oCj.tigerMac( 1, function(){                    if ( Number( $(this).text() ) === 6 ) {                        alert('恭喜中奖啦!你还有' + n + '次抽奖机会哦!');                    } else if ( n ) {                        alert('^ @ ^ 没中奖,加油!你还有' + n + '次抽奖机会哦!');                    } else {                        alert('^ @ ^ 没中奖!谢谢参与');                    }                } );                oCj = null;            }else {                alert('你没有抽奖机会啦');            }        }    })());

以上就是整个js抽奖的代码,至于抽奖布局的话,大家就看着处理吧。大家看到有更好的实现方法,欢迎留言或者联系我,一起学习!

转载于:https://www.cnblogs.com/qiheng/p/3421190.html

你可能感兴趣的文章
【Luogu】P2498拯救小云公主(spfa)
查看>>
如何获取网站icon
查看>>
几种排序写法
查看>>
java 多线程的应用场景
查看>>
dell support
查看>>
转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决...
查看>>
MTK android 设置里 "关于手机" 信息参数修改
查看>>
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
CKplayer:视频推荐和分享插件设置
查看>>
CentOS系统将UTC时间修改为CST时间
查看>>
redis常见面试题
查看>>
导航控制器的出栈
查看>>
玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]
查看>>
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
查看>>
Delphi消息小记
查看>>
HNOI2016
查看>>
JVM介绍
查看>>
将PHP数组输出为HTML表格
查看>>