JS+CSS写的类似转盘的抽奖程序

jopen 8年前

精简版类似转盘的抽奖程序。这是简单0-8个奖品页面,0-8即每个奖品,改的时候只需要自己把他们换成不同的样式就OK了。

    <html>            <head>                <style type="text/css">                    .cur{color:red;font-weight:700;font-size:30px;}<!--选中状态-->                </style>            </head>            <body>                <span onclick="getAward();">go</span><!--点击开始抽奖-->                <span onclick="stopAward();">stop</span><br/><!--点击停止抽奖-->                      <span id="a0" class="cur">0</span><br/>                <span id="a1">1</span><br/>                <span id="a2">2</span><br/>                <span id="a3">3</span><br/>                <span id="a4">4</span><br/>                <span id="a5">5</span><br/>                <span id="a6">6</span><br/>                <span id="a7">7</span><br/>                <span id="a8">8</span><br/>            </body>            <script src="jquery-1.6.3.min.js"></script>            <script src="award.js"></script>        </html>  

一下是award.js文件

    <script type="text/javascript">        var start = 0;        //第一个奖品代号0        var end = 8;        //最后一个奖品代后是8        var cur = 0;        //当前被选中(高亮)的奖品        var distance = 0;        //从后台得到中奖代后滚动过的格数        var time = 300;        //没0.3秒转盘滚动一格        var go;        //声明用来让转盘滚动的定时器        var stop = -1;        //应该停下来的奖品代码,默认为-1,即开始无奖品                        var getAward = function() {            clearInterval(go);                //清除定时器,防止多次开始按钮造成混乱            go = setInterval("change()", time);            //每隔time毫秒换一个格子        };                var change = function() {            if(stop == cur && distance > 5) {                //判断中奖代后与当前是否一致,且滚动格数是否大于5步(为了让转盘多滚动几下,避免马上停下)                showAward(stop);                //如果中奖,则提示用户,停止抽奖程序                return;            }            $("#a"+cur).removeClass("cur");            //把当前奖品设置为常态            if(cur == 8) {                $("#a"+start).addClass("cur");                //把第一个奖品设置为高亮cur=0;//让cur指向第一个奖品            }else {                 $("#a"+(cur+1)).addClass("cur");                //把下一个奖品设置为高亮                cur++;                //让cur指向下一个奖品            }             (stop >= 0) && (time = time+100);            //如果stop>=0,即受到中奖信息后,把定时器时间加长,目的是让转盘越转越慢            (stop >= 0) && distance++;            //中奖后,每滚动一次给distance加1,可以让转盘多滚几下,不至于马上停止            clearInterval(go);             getAward();        };        var stopAward = function(award) {            //后台获取中奖代号award            stop = award;            //把中奖信息传递给stop        }var showAward = function(award) {            alert(award);            //提示用户的奖项            clearInterval(go);            //清除定时器        }        </script>  

来自:http://blog.csdn.net/iammaking/article/details/17287697