2019-06-04

js制作双色球

div样式如下

<div class="top">
        红球
        <div class="redball"></div>
        蓝球
        <div class="blueball"></div>
        <div>
            <button type="button" id="action">机选</button>
            <button type="button" id="stop">停止</button>
        </div>
    </div>
css代码如下
            display: inline-block;
            width: 80px;
            height: 80px;
            line-height: 80px;
            text-align: center;
            color: #333;
            border-radius: 100%;
        }
        .red {
            background: red;
            color: white;
        }
        .blue {
           background: blue;
            color:white;
        }

js代码如下
1.首先,我们要获取到所有的元素

 var redball = document.querySelector('.redball');
 var blueball = document.querySelector('.blueball');
 var action = document.querySelector('#action');
 var stop = document.querySelector('#stop');

2.然后我们要在js中添加元素,得到红球和蓝球的个数;

  var productionElement = function (count, targetElement) {
            var str = '';
            for (var j = 1; j <= count; j++) {
                str += '<span>' + j + '</span>'
            }
            targetElement.innerHTML = str;
        }
        productionElement(32, redball);
        productionElement(16, blueball);

3.取到随机数

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

4.生产数组

 var productionArr = function (count, startCount, endCount) {
            var arr = [];
            while (arr.length < count) {
                var result = randerCount(startCount, endCount);
                if (arr.indexOf(result) === -1) {
                    arr.push(result);
                }
            }
            return arr;
        }

5.渲染页面

 var arr = randerPage = function (list,childrenElement,bg) {
            for(var j = 0; j < childrenElement.length; j ++) {
                childrenElement[j].className = '';
            }
            for (var i = 0; i < list.length; i ++ ) {
                childrenElement[list[i] - 1].className = bg;
            }
        }

6.自动选择

 var actionCheck = function () {
            var result1 = productionArr(6,1,32);
            var redballTag = redball.children;
            var result2 = productionArr(1,1,16);
            var blueballTag = blueball.children;
            randerPage(result1,redballTag,'red');
            randerPage(result2,blueballTag,'blue');
        }
        var timer = null;
        //开始//
        action.onclick= function () {
            if(!timer) {
                timer = setInterval(actionCheck,20);
            }
        }
        //停止//
        stop.onclick = function() {
            clearInterval(timer);
            timer = null;
        }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,221评论 1赞 45
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,353评论 1赞 92
  • Echarts报表 [if !supportLists]1、[endif]引入 ECharts 文件(head部分...
    1fa38a6a3bcf阅读 209评论 0赞 0
  • 正则表达式 /.../ 范围 ^ 匹配输入字符串的开始位置 $匹配输入字符串的结束位置 \d 0-9任意数字 \D...
    噶好可怜阅读 151评论 0赞 0
  • 1. 盒模型 页面渲染时,dom 元素所采用的 布局模型。可通过box-sizing进行设置。根据计算宽高的区域可...
    王小滚阅读 716评论 1赞 9

友情链接更多精彩内容