JS實(shí)現(xiàn)雙色球

今天無意間看到了雙色球的開獎(jiǎng)叉信,發(fā)現(xiàn)一等獎(jiǎng)竟然中了10注。突然看到了發(fā)家致富的路子艘希。所以寫了一個(gè)雙色球的代碼硼身,提高一下中獎(jiǎng)率。完整的代碼在文章最后覆享。

css樣式佳遂,因?yàn)槲沂莿?dòng)態(tài)生成的標(biāo)簽,所以沒有寫很多css

  <style>
     * {
          cursor: pointer;
      }
      span {
          display: inline-block;
          width: 30px;
          height: 30px;
          line-height: 30px;
          text-align: center;
          border: 1px solid #000;
          border-radius: 50%;
          margin: 5px;
      }
  </style>
  <div id="red"></div>
  <div id="blue"></div>
  <button>開始</button>
  <button>停止</button>

通過js獲取元素

      var red = document.getElementById('red')
      var blue = document.getElementById('blue')
      var start = document.getElementsByTagName('button')[0];
      var end = document.getElementsByTagName('button')[1];

生成元素撒顿,紅球?yàn)?3個(gè)丑罪,藍(lán)球16個(gè)

      function generate(element, num) {
            var str = '';
            for (var j = 1; j <= num; j++) {
                str += '<span>' + j + '</span>'
            }
            element.innerHTML = str;
        }
        generate(red, 33);
        generate(blue, 16);

現(xiàn)在生成完元素以后,我們的界面是這樣的凤壁,是不是看到了大獎(jiǎng)在向你招手吩屹。


取隨機(jī)數(shù)

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

現(xiàn)在隨機(jī)數(shù)取好了,下一步需要去生成一個(gè)數(shù)組拧抖,并且需要給數(shù)組進(jìn)行去重以及確定數(shù)組內(nèi)元素的個(gè)數(shù)煤搜。因?yàn)樵谶@里我們需要調(diào)用上面取隨機(jī)數(shù)的函數(shù),所以這里也需要傳上start和end

      function arrAy(num, start, end) {
          var _b = [];
          while (_b.length < num) {
              var _c = ranDom(start, end)
              if (_b.indexOf(_c) === -1) {
                  _b.push(_c);
              }
          }
          return _b;
      }

現(xiàn)在我們可以得到一個(gè)有隨機(jī)數(shù)的數(shù)組唧席,下一步就對(duì)頁面上的元素進(jìn)行渲染擦盾。

      function backGround(arr, color, element) {
          for (var i = 0; i < element.length; i++) {
              //先對(duì)元素內(nèi)的所有元素進(jìn)行背景色清空嘲驾。
              element[i].style.background = '';
          }
          for (var j = 0; j < arr.length; j++) {
              //這里對(duì)對(duì)應(yīng)的元素進(jìn)行背景色改變。因?yàn)橄聵?biāo)和元素差1個(gè)迹卢,所以這里減1辽故。
              element[arr[j] - 1].style.background = color;
          }
      }

進(jìn)行下一步,調(diào)用這些函數(shù)腐碱,因?yàn)橄旅嫘枰〞r(shí)器來讓它自動(dòng)選擇榕暇,所以這里我把需要調(diào)用的函數(shù)寫到了這一個(gè)函數(shù)內(nèi)。

    function select() {
          var _d = arrAy(6, 1, 32)
          var _e = arrAy(1, 1, 16)
          backGround(_d, 'red', red.children);
          backGround(_e, 'blue', blue.children);
          console.log(_d,_e)
      }

做完這一步喻杈,所有的靜態(tài)效果就完成了彤枢,看一下效果。


現(xiàn)在就需要一個(gè)定時(shí)器來讓它進(jìn)行自動(dòng)選擇筒饰,這個(gè)定時(shí)器我加到了按鈕的點(diǎn)擊事件上

      var time = null
      start.onclick = function () {
          //如果不加判斷缴啡,多次點(diǎn)擊會(huì)造成定時(shí)器疊加,這樣不是我們想要的效果
          if (time == null) {
              time = setInterval(function () {
                  select()
              }, 60)
          }
      }
      end.onclick = function () {
          clearInterval(time)
          time = null
      }

來看一看完整的效果瓷们。


OK业栅,寫到這里所有的步驟都已經(jīng)完成了,最后祝大家都可以中他個(gè)500萬

完整代碼:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            cursor: pointer;
        }
        span {
            display: inline-block;
            width: 30px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            border: 1px solid #000;
            border-radius: 50%;
            margin: 5px;
        }
    </style>
</head>

<body>
    <div id="red"></div>
    <div id="blue"></div>
    <button>開始</button>
    <button>停止</button>
    <script>
        var red = document.getElementById('red')
        var blue = document.getElementById('blue')
        var start = document.getElementsByTagName('button')[0];
        var end = document.getElementsByTagName('button')[1];
        function generate(element, num) {
            var str = '';
            for (var j = 1; j <= num; j++) {
                str += '<span>' + j + '</span>'
            }
            element.innerHTML = str;
        }
        generate(red, 33);
        generate(blue, 16);
        function ranDom(start, end) {
            var _a = end - start + 1;
            return Math.floor(Math.random() * _a + start)
        }
        function arrAy(num, start, end) {
            var _b = [];
            while (_b.length < num) {
                var _c = ranDom(start, end)
                if (_b.indexOf(_c) === -1) {
                    _b.push(_c);
                }
            }
            return _b;
        }
        function backGround(arr, color, element) {
            for (var i = 0; i < element.length; i++) {
                element[i].style.background = '';
            }
            for (var j = 0; j < arr.length; j++) {
                element[arr[j]-1].style.background = color;
            }
        }
        function select() {
            var _d = arrAy(6, 1, 33)
            var _e = arrAy(1, 1, 16)
            backGround(_d, 'red', red.children);
            backGround(_e, 'blue', blue.children);
        }
        var time = null
        start.onclick = function () {
            if (time == null) {
                time = setInterval(function () {
                    select()
                }, 60)
            }
        }
        end.onclick = function () {
            clearInterval(time)
            time = null
        }
    </script>
</body>

</html>

學(xué)識(shí)有限谬晕,如有錯(cuò)誤或者不足碘裕,歡迎指出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末攒钳,一起剝皮案震驚了整個(gè)濱河市帮孔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌不撑,老刑警劉巖文兢,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異焕檬,居然都是意外死亡姆坚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門实愚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兼呵,“玉大人,你說我怎么就攤上這事腊敲』魑梗” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵兔仰,是天一觀的道長茫负。 經(jīng)常有香客問我,道長乎赴,這世上最難降的妖魔是什么忍法? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮榕吼,結(jié)果婚禮上饿序,老公的妹妹穿的比我還像新娘。我一直安慰自己羹蚣,他們只是感情好原探,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顽素,像睡著了一般咽弦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胁出,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天型型,我揣著相機(jī)與錄音,去河邊找鬼全蝶。 笑死闹蒜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抑淫。 我是一名探鬼主播绷落,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼始苇!你這毒婦竟也來了砌烁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤催式,失蹤者是張志新(化名)和其女友劉穎往弓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓄氧,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡函似,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喉童。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撇寞。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖堂氯,靈堂內(nèi)的尸體忽然破棺而出蔑担,到底是詐尸還是另有隱情,我是刑警寧澤咽白,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布啤握,位于F島的核電站,受9級(jí)特大地震影響晶框,放射性物質(zhì)發(fā)生泄漏排抬。R本人自食惡果不足惜懂从,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹲蒲。 院中可真熱鬧番甩,春花似錦、人聲如沸届搁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卡睦。三九已至宴胧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間表锻,已是汗流浹背恕齐。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浩嫌,地道東北人檐迟。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像码耐,于是被迫代替她去往敵國和親追迟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容