jquery抽奖程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
var runTime;//定时器
var runStart=0;//色块位置
var runSpeed=60;//速度
var tt=1;//曲线运动当前时间
var chouLength=10;//奖品数量
var is_stop = 0;
var run_stop;//定时器2
$(function(){
    $("#chou-btn").click(function(){
        {if $_userid}
        suiji=$.ajax({url:"...",async:false,cache:false});
        suiji=suiji.responseText;
        $("#iframebg").show();
        runRotate(runStart);
        window.setTimeout(stopRotate(suiji),1000);
        check();
        {else}
        alert("您还未登录,请登录后再进行抽奖。");
        {/if}
    })
})

//检查
function check() {
    window.clearInterval(run_stop);
    if (is_stop == 1) {
        check_stop();
    } else {
        run_stop = setInterval(function(){check();},500);
    }
}

//开始旋转
function runRotate(i){
    clearInterval(runTime);
    $("#chou-lumps li").eq(i).addClass("current").siblings().removeClass("current");
    if(runStart<chouLength){
        runStart++;
    }else{
        runStart=0;
    }
    runTime=setInterval(function(){
        runRotate(runStart);
    },runSpeed);
}
//停止旋转
function stopRotate(i){
    clearInterval(runTime);
    var cur=$("#chou-lumps li").index($("#chou-lumps li.current")[0]);
    var index=i-cur+33;
    var next=cur;
    if(next==chouLength){next=0;}
    easeOutQuad(index,next);
}
//减速旋转
function easeOutQuad(index,cur) {
    clearInterval(runTime);
    $("#chou-lumps li").eq(cur).addClass("current").siblings().removeClass("current");
    if(runStart<10){
        runStart++;
    }else{
        runStart=0;
    }
    index--;
    if(index!=0){
        tt++;
        runTime=setInterval(function(){
            easeOutQuad(index,runStart);
        },easeOut(tt,60,120,25));
    }else{
        runSpeed=60;
        tt=1;
        $("#iframebg").hide();
        is_stop=1;
    }
}
//曲线算法,减速值
function easeOut(t,b,c,d){
    return c*(t/=d)\*t\*t + b;
}
//判断是否停止
function check_stop() {
    var jiangpin = parseInt(suiji) + 1 ;
    alert("您抽到了第" + jiangpin + "个奖品!");
    window.location.href="..."+suiji;
}