• js随机生成座号


    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                .maxBox {
                    padding: 4px 6px;
                    font-size: 16px;
                    color: #3EAFE0;
                }
                
                .clickBtn {
                    border: 1px solid #3EAFE0;
                    background-color: #3EAFE0;
                    color: #FFF;
                    font-size: 14px;
                    padding: 4px 6px;
                }
                
                .result {
                    font-size: 80px;
                    color: #3EAFE0;
                    font-weight: bold;
                    padding: 30px;
                }
                
                .txt_center {
                    text-align: center;
                }
                
                .exist {
                    border: 1px solid #EEE;
                    padding: 20px;
                    margin: 20px auto;
                     600px;
                    min-height: 100px;
                    text-align: left;
                }
                
                .exist span {
                    display: inline-block;
                    padding: 2px 10px;
                    margin: 4px;
                    border-radius: 3px;
                    background-color: #3EAFE0;
                    color: #FFFFFF;
                }
                
                .info {
                    border: 1px solid blue;
                    color: #000;
                    font-weight: 500;
                    padding: 20px;
                    margin: 20px auto;
                     600px;
                }
            </style>
        </head>
    
        <body>
            <div class="txt_center">
                <div class="result">
                    <span class="" id="result">0</span>
                </div>
                <input class="maxBox" type="text" id="txt" placeholder="请在里面输入号码最大值!">
                <input class="clickBtn" type="button" id="btn" value="抽号">
                <div class="exist">
                    <div>已抽取:</div>
                    <div id="exist"></div>
                </div>
            </div>
            <!--练习说明-->
            <div class="info">
                1、在文本框中输入抽号最大值<br/> 2、点击按钮,开始抽号,随机生成1~最大值之间的整数
                <br/> 3、已经抽取的号码存入一个数组
                <br/> 4、为了保证号码的唯一性,每次生成一个号码,跟数组中的已抽取的号码比对
                <br/> 5、如果已存在,重新生成号码
                <br/> 6、如果不存在,放入数组中保存,并显示出来 <br/> 7、将号码结果放入result中显示出来
                <br/> 8、将已经生成的号码(数组)存入exist中显示出来
                <br/>
            </div>
            <script type="text/javascript">
                window.onload = function() {
                    var oBtn = document.getElementById("btn");
                    var oTxt = document.getElementById("txt");
                    var oRes = document.getElementById("result");
                    var oExt = document.getElementById("exist");
                    var arr = [];
                    var max = 0
                    oBtn.onclick = function() {
                        max = parseInt(oTxt.value);
                        //如果不是数字,终止
                        if(isNaN(max)) {
                            alert("请输入大于1的数字!");
                            return;
                        }
                        //如果达到最大值
                        if(arr.length == max) {
                            oTxt.value = "";
                            alert("号码已全部抽完!");
                            return;
                        }
                        //前面情况不存在,正常执行
                        getRandomNum();
    //                    generateResult()
                        oRes.innerHTML = arr[arr.length - 1];
                        //生成已抽取的号码结果
                        generateExist();
                    }
    
                    //生成随机数
                    function getRandomNum() {
                        var tmp = Math.floor(Math.random() * max + 1);
                        // 判断是不是好数
                        var flag = isGood(tmp);
                        if(flag) {
                            arr.push(tmp);
                        } else {
                            //递归
                            getRandomNum();
                        }
                    }
                    //判断是否重复
                    function isGood(x) {
                        for(var i = 0; i < arr.length; i++) {
                            if(arr[i] == x) {
                                return false;
                            }
                        }
                        return true;
                    }
                    //生成已抽取的号码
                    function generateExist() {
                        var html = ''
                        for(var i = 0; i < arr.length; i++) {
                            html += '<span>' + arr[i] + '</span>';
                        }
                        oExt.innerHTML = html;
                    }
                    //动画生成结果
                    function generateResult() {
                        var now = parseInt(oRes.innerText);
                        clearInterval(tick);
                        var tick = setInterval(function() {
                            now++;
                            oRes.innerText = now;
                            if(now == arr[arr.length - 1]) {
                                clearInterval(tick);
                                //生成已抽取的号码结果
                                generateExist();
                            }
                            if(now == max) {
                                now = 1
                            }
                        }, 50);
                    }
    
                }
            </script>
        </body>
    
    </html>
  • 相关阅读:
    移动端疑难特性、兼容性
    微信浏览器video播放视频踩坑
    【canvas学习笔记八】像素操作
    【canvas学习笔记七】混合和裁剪
    【canvas学习笔记六】状态保存和变换
    【canvas学习笔记五】使用图片
    【canvas学习笔记四】绘制文字
    【canvas学习笔记三】样式和颜色
    【canvas学习笔记二】绘制图形
    【canvas学习笔记一】基本认识
  • 原文地址:https://www.cnblogs.com/150536FBB/p/9678866.html
Copyright © 2020-2023  润新知