jQuery九宫格抽奖功能的实现

var lottery={
    index:-1,    //当前转动到哪个位置,起点位置
    count:0,    //总共有多少个位置
    timer:0,    //setTimeout的ID,用clearTimeout清除
    speed:10,    //初始转动速度
    times:0,    //转动次数
    cycle:50,    //转动基本次数:即至少需要转动多少次再进入抽奖环节
    prize:-1,    //中奖位置
    init:function(id){
        if ($("#"+id).find(".lottery-unit").length>0) {
            $lottery = $("#"+id);
            $units = $lottery.find(".lottery-unit");
            this.obj = $lottery;
            this.count = $units.length;
            $lottery.find(".lottery-unit-"+this.index).addClass("active");
        };
    },
    roll:function(){
        var index = this.index;
        var count = this.count;
        var lottery = this.obj;
        $(lottery).find(".lottery-unit-"+index).removeClass("active");
        index += 1;
        if (index>count-1) {
            index = 0;
        };
        $(lottery).find(".lottery-unit-"+index).addClass("active");
        this.index=index;
        return false;
    },
    stop:function(index){
        this.prize=index;
        return false;
    }
};


function roll(){
    lottery.times += 1;
    lottery.roll();//转动过程调用的是lottery的roll方法,这里是第一次调用初始化
    if (lottery.times > lottery.cycle+10 && lottery.prize==lottery.index) {
        clearTimeout(lottery.timer);
//=====添加中奖位置确定后弹窗开始,如不需要则去掉=====//
var prize_name;
var prize_place = lottery.prize;
switch (prize_place)
{
case 0:
   prize_name="30M流量券";
   break;
case 1:
   prize_name="30M流量券";
   break;
case 2:
   prize_name="150M流量券";
   break;
case 3:
   prize_name="10M流量券";
   break;
case 4:
   prize_name="70M流量券";
   break;
case 5:
   prize_name="";
   break;
case 6:
   prize_name="10M流量券";
   break;
case 7:
   prize_name="10M流量券";
   break;
}
if(prize_place==5){
setTimeout(function(){
$(".popup_failure_wrap").css("display","block");
},1000);
}else{
setTimeout(function(){
$(".popup_succeed_wrap").css("display","block");
$(".succeed_prizeCon").html(prize_name);
},1000);
}
//=====添加中奖位置确定后弹窗开始结束,如不需要则去掉=====//
        lottery.times=0;
        click=false;
    }else{
        if (lottery.times             lottery.speed -= 10;
        }else if(lottery.times==lottery.cycle) {
            var index = Math.random()*(lottery.count)|0;//中奖物品通过一个随机数生成
            lottery.prize = index;        
        }else{
            if (lottery.times > lottery.cycle+10 && ((lottery.prize==0 && lottery.index==7) || lottery.prize==lottery.index+1)) {
                lottery.speed += 110;
                
            }else{
                lottery.speed += 20;
            }
        }
        if (lottery.speed<60) {
            lottery.speed=60;
        };
// console.log(lottery.times+'^^^^^^'+lottery.speed+'^^^^^^^'+lottery.prize);
        lottery.timer = setTimeout(roll,lottery.speed);//循环调用
    }
    return false;
}

var click=false;


你可能感兴趣的:(jQuery)