zoukankan      html  css  js  c++  java
  • js 模拟prompt弹窗,模拟阻塞

    可模拟阻塞for循环

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="btn.css">
        <link rel="shortcut icon" href="favicon.ico">
        <style>
            #fullbg
            {
                background-color:#000;
                opacity:0.5;
                position: fixed;
                left:0;right:0;top:0;bottom: 0;
                z-index:100;
                display:none;
            }
            #dialog
            {
                background-color:#fff;
                border:1px solid #aaa;
                400px;
                margin:-120px 0 0 -200px;
                position:fixed;
                top:50%;
                left:50%;
                border-radius:5px;
                z-index:101;
                display:none;
            }
            #dialog div{padding:15px 30px;}
        </style>
    </head>
    <body>
        <p>1</p>
        <p>2</p>
        <p>3</p>
        <p>4</p>
        <p>5</p>
        <p>6</p>
        <p>7</p>
        <p>8</p>
        <p>9</p>
        <p>10</p>
        <p>11</p>
        <p>12</p>
        <p>13</p>
        <p>14</p>
        <p>15</p>
        <p>16</p>
        <p>17</p>
        <p>18</p>
        <p>19</p>
        <p>20</p>
        <p>21</p>
        <p>22</p>
        <p>23</p>
        <p>24</p>
        <p>25</p>
        <p>26</p>
        <p>27</p>
        <p>28</p>
        <p>29</p>
        <p>30</p>
        <div id="fullbg" onclick="closeBg();"></div>
        <div id="dialog">
            <div>
                <p><h1>提示消息</h1></p>
                <p><input type="text" id="msgRes" placeholder="请输入" value="Hi" style=" 98%;font-size: 1.5em;"></p>
                <p style="text-align: right;">
                    <button type="button" class="btn" onclick="dialogok()">确认</button>&nbsp;&nbsp;
                    <button type="button" class="btn" onclick="dialogcancel()">取消<span id="timer">(9)</span></button>
                </p>
            </div>
        </div>
    </body>
    </html>
    <script src="jquery.min.js"></script>
    <script>
    
    var tmp = 0;//临时变量
    var timer = null;//计时器
    demo(tmp);//模拟弹窗
    
    //模拟弹窗条件
    function demo(tmp)
    {
        //for循环模拟中断
        for(let i = tmp; i < 10; i++)
        {
            if(i==3)//触发弹窗条件
            {
                showtime(i+1);//跳过本次,下次从+1处开始
                break;
            }
            else if(i==6)
            {
                showtime(i+1);//跳过本次,下次从+1处开始
                break;
            }
            console.log(i);
        }
    
    
        // //setInterval模拟慢速for循环
        // let i = tmp;
        // let tt = setInterval(function(){
    
        //     if( i < 10)
        //     {
        //         if(i==3)
        //         {
        //             showtime(i + 1);//跳过本次,下次从+1处开始
        //             clearInterval(tt);//停止计数
        //         }
        //         else if(i==6)
        //         {
        //             showtime(i + 1);//跳过本次,下次从+1处开始
        //             clearInterval(tt);//停止计数
        //         }
        //         console.log(i);
        //         i++;
        //     }
        //     else
        //     {
        //         //初始化
        //         clearInterval(tt);
        //         tmp = 0;
        //     }
    
        // },1000);
    }
    
    //确认按钮
    function dialogok()
    {
        console.log( '你输入的值是:' + $('#msgRes').val().trim() );//显示信息
        closeBg();//关闭弹窗,初始化计时器
        demo(tmp);//继续流程
    }
    
    //取消按钮
    function dialogcancel()
    {
        tmp = 0;
        closeBg();
    }
    
    //计时器
    function showtime(i)
    {
        tmp = i;//下次起始位置
        showBg();//显示遮罩层+弹窗
           
        let j = 9;//倒计时
    
        timer = setInterval(function(){
    
            if(j > 0)
            {
                j--;
            }
            else
            {
               dialogcancel();//计时结束:关闭弹窗,取消流程
            }
    
            $('#timer').text(' ('+ j +')');//显示倒计时
    
        },1000);
    
    }
    
    //显示灰色遮罩层+弹窗
    function showBg()
    {
        //计算遮罩层面积
        let bh = window.screen.height;//屏幕分辨率高度
    
        if(bh < document.body.scrollHeight)//求灰色遮罩层高度
        {
            bh = document.body.scrollHeight;//网页内容高度
        }
    
        $("#fullbg").css(//显示灰色遮罩层
            {
                'height': bh,
                'width':'100%',
                'display': "block"
            }
        );
    
    
        $("#dialog").show();//显示灰色遮罩层
        $('#msgRes').focus();//弹窗输入框获取输入焦点
    }
    
    //关闭灰色遮罩   
    function closeBg()
    {
        $("#fullbg,#dialog").hide();//隐藏灰色遮罩层,弹窗
    
        //初始化计时器
        if(timer)
        {
            clearInterval(timer);
            timer = null;
        }
    }
    
    </script>
  • 相关阅读:
    mac 修改Python版本
    idea 系列破解
    史上最完全Mac安装Scrapy指南
    mac下brew安装mysql
    IOS: 网络图片缓存
    欢迎访问我的git
    学习笔记
    2019-2020-1 20191327《信息安全专业导论》第十二周学习总结
    2019-2020学年 20191327《信息安全专业导论》第十一周学习总结
    2019-2020学年 20191327《信息安全专业导论》第十周学习总结
  • 原文地址:https://www.cnblogs.com/nb08611033/p/10298625.html
Copyright © 2011-2022 走看看