双色球 揭秘幸运号背后的故事

动态展示.gif

Tips:
双色球是中国福利彩票的一种玩法。双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。投注时选择6个红色球号码和1个蓝色球号码组成一注进行单式投注。

划重点:
总共7个球组成 6个红球 1 个蓝球
红色球数值范围:1-33;
蓝色球数值范围:1-16;

css样式:

 * {
        padding: 0;
        margin: 0;
        list-style: none;
    }
.clearfix:after {
        display: block;
        content: '';
        width: 0;
        height: 0;
        clear: both;
    }

    clearfix {
        zoom: 1;
    }
 .ball-container>li {
        float: left;
        width: 60px;
        height: 60px;
        margin-right: 20px;
        line-height: 60px;
        text-align: center;
        border: 1px solid #000;
        border-radius: 50%;
    }

一口气写这么多代码有点累 缓缓继续···

    .ball-container>.red {
        border: 1px solid red;
        color: red;
    }

    .ball-container>.blue {
        border: 1px solid blue;
        color: blue;
    }
    .start, .end {
        cursor: pointer;
    }

我比较喜欢使用ul,li来做这类案例 当然其他盒子也是可以的

<!-- 7个球 -->
    <ul class="ball-container clearfix" id="ball-container">
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
  </ul>

    <!-- 两个按钮 -->
    <div class="button">
        <span class="start" id="start">开始</span>
        <span class="end" id="end">结束</span>
  </div>

获取元素

<script>
        var lis =  byID('ball-container').children;
        var start = byID('start');
        var end = byID('end');
        var timer =  null; //设置装定时器的变量
        console.log(lis); //这里可以打印查看元素是否都获取到了
       //封装找ID名
        function byID(id) {
            return document.getElementById(id);
        }

因为是随机抽取数值所以先把随机函数写好 以便调用

 function random(start, end) {
            return Math.floor(Math.random()*(end - start +1) + start);
        }

实现步骤:
敲黑板!!! 接下来就是重点取红色球与蓝色球了


c.gif

1,首先给两个空数组盛放经过加工后的红色球与蓝色球
*****怎么判断球取好了呢 不要捉急咱们慢慢来

当红色球数组长度小于6时 执行随机函数将取出的球放在一个新的变量temp里 此时已取出6个红色球

****要注意的是此时取出的6个球可能会有重复的 所以还需要做一步去重的工作


a.gif

2,通过indexOf判断 如果在红色盒子里没有出现过随机出来的数字 此时再 将数字放进盛放红色球的数组 这样红色球就取好了

3,蓝色球只有一个 所以直接通过随机函数取出放进蓝色球数组就好了

4,最后一步将红、蓝两个数组拼接起来简单的双色球就搞定大半了

function balls() {
            var blue;
            var red = [];
            while(red.length < 6) {
                var temp = random(1,33); //取出红色球
                if(red.indexOf(temp) === -1) {  //下标为-1则表明之前没有出现过
                    red.push(temp);  //将去重后的随机数放进数组
                }
            }
            var blue = random(1,16);  //随机取出蓝色球
            return red.concat(blue);  //将红色球与蓝色球数组拼接
        }

此时还只能在控制台看到随机取出的数组 所以下一步就需要将取出的数值写入html
为了便于区分 通过添加类名的方式给盒子添加红色或颜色

 function update() {
            for (var i = 0, len = lis.length; i < len ; i++) {
                var newarr = balls();
                lis[i].innerHTML = newarr[i];
                lis[i].className =  i === 6 ?  'blue' : 'red';
               //三目运算法判断如果i为6则为蓝色球  反之为红色球
            }
        }  

此时简单的双色球已经搞定了 通过不断刷新就可以得到随机数
接下来就是让它自己动起来
添加定时器并且给两个按钮绑定事件,在点击开始或结束按钮时执行相应动作

            start.onclick = function() {
                if(timer) {   //判断如果有定时器则return
                    return;
                }
              timer = setInterval(function() {
                update()
              },200)
            }
            end.onclick = function() {
                clearInterval(timer);  //清除定时器
                timer = null; //将定时器置空
            }
        }
        addEvent()

今天的分享就到这里啦,如有错误欢迎不吝指出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343