1

这是我的代码。

     <head>
        <style type="text/css">

        </style>

        <script type="text/javascript">
              var pressed = 0

            function pullNumber() {
                var x=document.getElementById("number")
        x.innerHTML=Math.floor((Math.random()*100)+20);
            }
            function beginCountup() {
                var display = document.getElementById("display"),
                i = 0;
                setInterval(function(){display.textContent = ++i; }, 50);

            }
            window.onkeypress = function(event) {
                if (event.keyCode == 32) {
                beginCountup();
        }
            }
       </script>
     </head>

     <body>
        <h1>Stop the spacebar at:</h1><h1 id="number">0</h1>
        <button onclick="pullNumber()">Roll new number</button>
        <h1 id="display">0</h1>

     </body>

    </html>

概念:按下按钮滚动随机数字,(滚动数字)
然后他们玩家击中(空格键 32)
目标是让玩家在目标数字的 5 内停止
(我可能会在以后改变速度)
剩下的我可以做. 但我想不出一种让空格键
在按下另一个功能后切换到多功能的方法。

所以再次空间开始,空间停止

4

2 回答 2

0

您可以分配setInterval()给一个变量并在那里停止它。

window.onkeypress = function(e){
    if (e.keyCode == 32){
        clearInterval(window.interval)
    }
}

并更改setInterval(function(){display.textContent = i++; }, 50);

window.interval = setInterval(function(){display.textContent = i++; }, 50);

于 2013-11-09T14:02:40.160 回答
0

您可以使用clearInterval()javascript 中的函数来清除之前设置的间隔。

它需要函数的 IntervalIDsetInterval()来清除它。例子 :clearInterval(IntervalID);

在这里您可以创建两个变量:

1.用于存储IntervalID:它将在调用clearInterval()函数时使用。

2.用于存储循环的状态:当按下空格键时,如果循环正在运行,我们应该停止循环。如果循环没有运行启动它。

代码如下:

  <head>
        <style type="text/css">

        </style>

        <script type="text/javascript">
              var intervalID;
              var isCounntRunning=false;
              var pressed = 0


            function pullNumber() {
                var x=document.getElementById("number")
        x.innerHTML=Math.floor((Math.random()*100)+20);
            }
            function beginCountup() {
                var display = document.getElementById("display"),
                i = 0;
                intervalID=setInterval(function(){display.textContent = ++i; }, 50);

            }
            window.onkeypress = function(event) {
                if (event.keyCode == 32) {
                if(!isCounntRunning)
                {
                isCounntRunning=true;
                beginCountup();
                }
                else
                {
                isCounntRunning=false;
                clearInterval(intervalID);
                }
        }
            }
       </script>
     </head>

     <body>
        <h1>Stop the spacebar at:</h1><h1 id="number">0</h1>
        <button onclick="pullNumber()">Roll new number</button>
        <h1 id="display">0</h1>

     </body>

    </html>
于 2013-11-09T14:18:42.240 回答